2016-08-24 6 views
0

Ich muss den Rest der Strings in einer Datei übereinstimmen. Ich kann die folgenden entsprechen:Regex passt für String mit \ '

(2, \\'username\\', 

mit

^\(\d+,\s\\{2}\'(\w+)\\{2}\', 

und username in meiner Capture-Gruppe ergeben. Ich habe jedoch nicht gelungen, dass der Regex zu erweitern

(2, \\'username\\', \\'pas$word\\', 2, \\'Name\\', \\'Name\\', \\'[email protected]\\', NULL, NULL, NULL, 0, TRUE, 9, FALSE), 

ich die optimistischen

^\(\d+,\s\\{2}\'(\w+)\\{2}\',.* 

versucht zu erfassen und ihm etwas zu tun mit den zusätzlichen \\' denken, ich habe sogar versucht

^\(\d+,\s\\{2}\'(\w+)\\{2}\', [\w\d\s\\,)@.$']*\), 

, aber ich kann nicht einmal diese auf

(2, \\'username\\', 'pas$word', 2, 'Name', 'Name', '[email protected]', NULL, NULL, NULL, 0, TRUE, 9, FALSE), 
übereinstimmen

so klar, ich vermisse, was direkt vor mir ist.

+0

[ '\ d + \ s * \\ {2} \ '(\ S +) \\ {2} \','] (https://regex101.com/r/jV3xA3/1)? Oder beabsichtigen Sie * die ganzen * Strings, die Sie zur Verfügung gestellt haben, abzustimmen? –

+0

Danke, Wiktor. Ich hätte '\ w +', nicht 'username' eingeben sollen, aber' \ S + 'ist sauberer. Ich bin jedoch immer noch nicht in der Lage, auf der längeren Linie zu passen. https://regex101.com/r/uY5bG8/1 –

+0

Ihre Frage enthält keine genauen Anforderungen oder zumindest die erwartete Ausgabe pro eingegebenem Beispiel. Warum benutzt du '^' Anker? Warum sollte es gefolgt werden mit '('? Ihre Frage ist nur unklar. –

Antwort

1

Dies wird jede Zeichenfolge in der Zeile erfassen, wenn ein Wert beginnend mit \\' und endend mit \\' zu sehen ist.

RegEx

\\{2}(\'\S*)\\{2}\' 
+0

und werfen das Spiel an der Spitze der Linie ergibt die erste solche gesuchte Zeichenfolge. Https://regex101.com/r/uY5bG8/2. So es scheint, dass der wirkliche Unterschied zwischen deiner erfolgreichen Besetzung und meiner ist, dass du den Anker '^' nicht für den Anfang der Linie benutzt hast, ich bin mir nicht sicher, warum das in mir brechen sollte. –