2017-06-09 37 views
-1

'message'という文字列の後にすべての内容を見つけたいが、 'messages'という文字列の後には正規表現を使用しない。その文字列ではない特定の文字列だけをsと一致させたい0

私はあなたが特定の文字列が続いていない文字列や正規表現にマッチします負の先読みと呼ばれるものを使用することができ、これらの組み合わせ

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

あなたが "後" とはどういう意味ですか?文字列 'messages'の中の' 'after '' message'の内容は' s'になるからです。それで、「後」の部分と単語を分けるスペースや何かがありますか? –

+0

for the matは基本的にthisです:messageこれは説明が必要なコンテンツですが、そこには単語があります。ファイルの前のメッセージは、その内容とその説明の間で内容を一致させたくありません。 –

+0

この正規表現はどのホスト言語に組み込まれていますか?おそらくこれをタグとして追加するべきです。サンプル入力と期待される出力(または実際の出力)は表示されていません。 MCVE([MCVE])の作成方法を確認してください。 –

答えて

0

を試してみました。

お使いの場合には

、それはこのようなものになります "メッセージ(?!S)*"

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

+0

何らかの理由でそれでもメッセージと内容の内容が一致しました。説明がありますか? –

0
message[^s].* 

あなたはでmessageを必要としない場合最終合致、使用

message[^s](.*) 

これはgrに出力されますoup 1変数。

+0

何らかの理由でそれでもメッセージの内容と一致しました。説明がありますか? –

0

これが行います。

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

がテスト:https://regex101.com/r/ykzqUz/1

+0

ありがとう!あなたはメッセージの後の内容と単語の説明の前に内容が一致するようにこれをどのように修正するのか知っていますか? –

関連する問題