我目前面临一些情况,我正在努力使用正则表达式。
就我而言,我在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"。
谢谢
- ('Escape symbol'(
使用负面回溯:
(?<!@)@(w+)
- (用句点分隔的单词(
匹配紧跟以句点为前缀的任意数量的单词的单词:
(w+(.w+)*)
包装到单个正则表达式中:
(?<!@)@(w+(.w+)*)
演示在这里(正则表达式101(。