2017-06-09 2 views
-1

Ich mag die ganzen Inhalt nach der Zeichenfolge ‚Botschaft‘ zu finden, aber nicht nach der Zeichenfolge ‚Nachrichten‘ mit regex.Ich möchte nur eine bestimmte Zeichenfolge entsprechen nicht die Zeichenfolge mit einem s

Ich habe diese Kombinationen versucht

release = re.findall(r'Message\b(.*?)Explanation',res,re.DOTALL) 

release = re.findall(r'Message(?!s)(.*?)Explanation',res,re.DOTALL) 

release = re.findall(r'(?<=Message[^s]).*Explanation',res,re.DOTALL) 

release = re.findall(r'Message[^s](.*?)Explanation',res,re.DOTALL) 

release = re.findall(r'Message[^s](.*?)Explanation',res,re.DOTALL) 
+0

Was "nach" meinen Sie? Weil der Inhalt "nach" "Nachricht" in der Zeichenfolge "Nachrichten" wäre "s". Gibt es also einen Raum oder etwas, um das Wort vom "Nachher" -Teil zu trennen? –

+0

Die für Matte ist im Grunde diese: Nachricht dies ist der Inhalt i Erklärung will, aber es ist ein Wort, früher Nachrichten in der Datei, die ich will nicht in zwischen diesem und Erklärung den Inhalt anzupassen. –

+0

In welcher Sprache ist dieser Regex eingebettet? Sie sollten das wahrscheinlich als Tag hinzufügen. Sie haben keine Beispieleingaben und die erwarteten Ausgaben (oder die tatsächlichen Ausgaben) angezeigt. Überprüfen Sie, wie ein MCVE ([MCVE]) erstellt wird. –

Antwort

0

Sie etwas verwenden, kann ein negatives Vorgriffs genannt, die einen String oder regex gefolgt nicht von einer bestimmten Zeichenfolge übereinstimmen.

In Ihrem Fall wäre es etwa so aussehen:

"Nachricht * (s?!)."

http://www.regular-expressions.info/lookaround.html

+0

Aus irgendeinem Grund stimmte es immer noch mit dem Inhalt zwischen Nachrichten und Erklärung. Gibt es noch etwas, das ich ausprobieren kann? –

0
message[^s].* 

Wenn Sie die message brauchen nicht in die letzte Übereinstimmung, verwenden Sie

message[^s](.*) 

, die an die gr ausgegeben werden Variable 1 Variable.

+0

Aus irgendeinem Grund stimmte es immer noch mit dem Inhalt zwischen Nachrichten und Erklärung. Gibt es noch etwas, das ich ausprobieren kann? –

0

wird dies tun:

(?<=message[^s]).* 

Test: https://regex101.com/r/ykzqUz/1

+0

Danke! Weißt du, wie ich das ändern würde, damit es mit dem Inhalt nach der Nachricht und vor dem Wort Erklärung übereinstimmt? –

Verwandte Themen