1

だから私はこの文字列を持っています:

sockcooker!~shaz@Rizon-AC7BDF2F.dynamic.dsl.as9105.com !~shaz@ PRIVMSG #Rizon :ohai. New here. registered 10 mins ago, have not got an email. Addy is correct. My email is working fine.

正規表現に !~shaz@ を見つけてもらいたいので、この r"!.+@" を使用しますが、これが見つかります

!~shaz@Rizon-AC7BDF2F.dynamic.dsl.as9105.com !~shaz@ 

私が覚えているように、それらを別々のものとして見つけて、特定の文字に置き換えてほしい..これについて何か助けがあれば、そうです、Pythonの良い正規表現を教えていただければ幸いです:D

4

2 に答える 2

4

デフォルトでは、量指定子は本質的に貪欲であり、可能な限り一致させようとします。そのため、正規表現は最後まで一致しています@

消極的な量指定子 ( の?後にa を追加+) を使用して、最初の で停止でき@ます。

r"!.+?@"

またはnegated、最初に自動的に停止する文字クラスを使用することもでき@ます。

r"![^@]+"

自分にとって理解しやすいものを選んでください。

于 2013-02-16T20:32:42.787 に答える
1

貪欲でない一致を使用したい。2 つの方法があります (Python は両方をサポートしています)。後者はより柔軟です。

r"![^@]+"
r"!.+?@

は貪欲にならないようにするため、最後ではなく最初の「@」で停止?ます.+

于 2013-02-16T20:32:57.867 に答える