Register for your free account! | Forgot your password?

You last visited: Today at 17:38

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



Regex help

Discussion on Regex help within the General Coding forum part of the Coders Den category.

Reply
 
Old   #1
 
XxharCs's Avatar
 
elite*gold: 34
Join Date: Apr 2011
Posts: 1,475
Received Thanks: 1,227
Regex help

Hello!

I am not so good with regular expressions but i still want to learn and understand it correctly

I want to regex a SQL statement. I only want that my sql string contains, a SELECT, SHOW and DESCRIBE and of course at the and a ;

i am coding in Java at it looks like this atm:
Code:
...
Pattern p = Pattern.compile("^(SELECT|SHOW|DESCRIBE).*;$");
...
But it doesn´t match correctly ): What am I missing in my regular expression?
XxharCs is offline  
Old 11/21/2013, 11:41   #2
 
Schlüsselbein's Avatar
 
elite*gold: 0
Join Date: Feb 2013
Posts: 1,137
Received Thanks: 869
SQL ist keine reguläre Sprache. Benutz einen SQL-Parser.
Schlüsselbein is offline  
Old 11/21/2013, 11:44   #3
 
XxharCs's Avatar
 
elite*gold: 34
Join Date: Apr 2011
Posts: 1,475
Received Thanks: 1,227
Quote:
Originally Posted by Schlüsselbein View Post
Java ist keine reguläre Sprache. Benutz einen SQL-Parser.
Für mein Java Programm will ich die Regular Expression anwenden, deswegen. Ich kann genauso meinen String mit .startsWith() und .endsWith() prüfen aber das ist mir zu unübersichtlich und ist nicht wirklich schön, deswegen will ich regex anwenden

Edit: Und extra eine SqlParser library für meine kleine Methode, will ich auch nicht verwenden
XxharCs is offline  
Old 11/21/2013, 11:53   #4
 
Schlüsselbein's Avatar
 
elite*gold: 0
Join Date: Feb 2013
Posts: 1,137
Received Thanks: 869
Ich meinte oben SQL statt Java, entschuldige. So gibt meine Aussage oben wieder Sinn.

Wie schon gesagt, kannst du SQL mit Regex nicht zuverlässlich parsen. Wenn du jesiglich prüfen willst, ob der String bestimmte Schlüsselwörter enthält, benutze halt String.contains() o.ä. was Java sicherlich bietet.
Schlüsselbein is offline  
Old 11/21/2013, 12:52   #5
 
XxharCs's Avatar
 
elite*gold: 34
Join Date: Apr 2011
Posts: 1,475
Received Thanks: 1,227
Hmm, egal. Habs mit Regex ganz weggelassen, weil bei längeren Strings dauerts mir zu lang und ist Injection unsicher.

Habs so gelöst (falls jemand das selbe prob hat):
Code:
    public boolean checkSqlString(String input) {
    	
    	String sql = input.toUpperCase();
        
    	if(sql.indexOf(';') != sql.length() - 1) 
    		return false;
        
    	for (String s : notAllowed) {
    		
    		if (sql.contains(s)) 
    			return false;
    	}
        
    	int i = 0;
    	for (String s : allowed) {
    		
    		if (sql.startsWith(s)) 
    			break;
                i++;
    		if (i == allowed.length) 
    			return false;
    		
    	}
        
    	return true;
    }
XxharCs is offline  
Reply


Similar Threads Similar Threads
[S] Regex Hilfe in VB.NET [B] 10 e*G
10/03/2013 - elite*gold Trading - 1 Replies
^this suche jemand der mir kurz per regex etwas codet das ip von dem rausliest: freundliche grüsse, styl.
Hilfe bei regex
10/02/2013 - .NET Languages - 4 Replies
Hallo liebe epvp gemeinschaft... ich bräuchte en bissl hilfe :D Ich habe ein auto registrationsprogramm.. es soll aber jetzt auch die mails bestätigen... mein problem ist es einen bestimmten link rauszukopieren der via httpwebrequest ausgeführt werden soll... <a class="non_underline" title="fdgfdfg" href="?login=fdgf&mail=13779207"> … </a> ?login=fdgf&mail=13779207 <-- das soll ausgelesen werden... den kompletten quellcode habe ich schon als string
Hilfe bei RegEx
08/20/2013 - Web Development - 0 Replies
Hat sich erledigt, gab einige Leichtsinnsfehler, Lösung möchte ich ungern öffentlich stellen.
VB RegEx
07/11/2013 - .NET Languages - 8 Replies
Hi, ich würde aus nem Quellcode ein paar ID's auslesen. Mit BetGetween geht alles super. Nur da es von den ID's mehrere im Quelltext gibt, brauch ich regEx Matches. src="http://www.howrse.de/media/equideo/imag e/chevaux/normaux/arabe-small/gr-c-icone.png?15883 8126" class="cheval-icone " width="40" height="40"/></a> <a href='/elevage/chevaux/cheval?id=18923938' class='horsename'> Diese ID soll rausgefiltert werden."18923938" Das mache ich mit
[c#] Regex Klasse
03/11/2010 - .NET Languages - 2 Replies
Hallo ich habe eine Frage zu der Regex Klasse. Meine Seite hat folgenden Quelltext: treffer>1<treffer treffer>2<treffer treffer>3<treffer treffer>4<treffer treffer>4<treffer treffer>5<treffer



All times are GMT +2. The time now is 17:38.


Powered by vBulletin®
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2024 elitepvpers All Rights Reserved.