如何让Regex单独选词

2024-09-30 01:37:21 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我有这个字符串:

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的好的正则表达式tut,我会很感激的:d


Tags: 字符串comnewhereisemaildynamicdsl
2条回答

默认情况下,量词本质上是贪婪的,它们会尽可能地匹配。这就是为什么正则表达式一直匹配到最后一个@。你知道吗

您可以使用不情愿量词(在+之后添加?)在第一个@处停止:

r"!.+?@"

或者您也可以使用negated字符类,它将在第一个@处自动停止:

r"![^@]+"

选择对你来说更容易理解的东西。你知道吗

你想用不粘的火柴。有两种方法(python支持这两种方法)。后者更灵活:

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

?使.+解除冻结,因此它将停止在第一个“@”而不是最后一个。你知道吗

相关问题 更多 >

    热门问题