2017-10-04 18 views
0

をマッチさせました。私はmsgのすべての出現を{までマッチさせたいと思います。正規表現と{

私の正規表現は次のようになりますregex = re.compile('"msg".+"{"')

私の理解によれば、これはmsgと直接一致し、次に何度も何度も何度も{に一致するはずです。

しかしながら、結果は得られません。私がmsgだけを使用すると、それが出力されますが、結果全体({まで)が必要です。

私は.{14}を使用しようとしましたが、文字の数が常に異なるため、これは役に立たないです。

+0

行に複数の '{'がある場合は、最初の行まで一致するか、最後の行まで一致させますか? –

+1

'^ [^ {] *' – Arount

+0

がうまくいかないときは、もっと単純にしてみてください。 "msg"にマッチする正規表現を書いてみてください。 – RPGillespie

答えて

1

\{のように{をエスケープする必要があります。 {は有効な正規表現文字なので、エスケープする必要があります。それ以外の場合は、正規表現はその特別な意味を試して使用します。それをエスケープすると、正規表現は文字{と文字通り一致します。それ以外の場合、正規表現は正常に見えます。

+1

これは必ずしも真実ではありません:https://regex101.com/r/dzgBuJ/1、 'msg。+ {'は 'Python '。 – Jan