【发布时间】:2020-05-13 12:27:44
【问题描述】:
我目前正面临一些我在使用正则表达式时遇到的情况。
在我的例子中,我在 python 中使用字典中可用的其他字符串替换匹配的模式,如下所示:
re.sub(r"@(\w+)", lambda m: my_dict[m.group(1)], my_string)
我现在做什么:
pattern = "@(\w+)"
匹配“@”之后的整个单词。例如“foo@bar foo2”只匹配“bar”
- 我想添加一个“转义”符号,即如果我有@@,它不会考虑后面的单词。 因此“foo@@bar foo2”不应该匹配任何东西。
我该怎么做?
- 此外,当且仅当它们由“。”分隔时,我如何才能匹配整个单词和下一个单词。
例如,匹配“foo@bar.foo2.foo3 foo4”应该匹配“bar.foo2.foo3”。
谢谢
【问题讨论】:
-
1.
"(?:[^@]|^)@(\w+)"2."(?:[^@]|^)@([\w\.]+)"