我可以这样说:
“lookaround”是为处理字符串“匹配”作业而发明的,
和
“捕获”是为了处理字符串“替换”工作而发明的。
此外
我能否得出结论:
“捕获”对于字符串“匹配”作业是不必要的,
和
对于字符串“替换”作业,“lookaround”是不必要的。
如果上述四个引号中的任何一个不正确,请告诉我一个与上述四个引号相冲突的理由或正则表达式。
答案 0 :(得分:1)
"捕获"字符串"匹配"是不必要的工作
不,它依赖于语言。在python中,捕获组也用于匹配目的。见下面的例子,
method_missing': undefined methodtimeSpentSeconds=' for
#JIRA::Resource::Worklog:0x007f831db3f360 (NoMethodError) from jira.rb:33:in
Lookarounds在这里无法帮助提取双引号之间的文本。因为loorounds不匹配起始和结束引用,导致不正确的结果。
"环视"字符串"替换"是不必要的工作
如果我们想要替换显示为整个单词的>>> import re
>>> s = 'foo"bar"buzz"blah"'
>>> re.findall(r'"([^"]*)"', s)
['bar', 'blah']
,那么我们可以使用以下基于外观的正则表达式。
buzz
这里我们也可以使用捕获组,但也可以使用外观。
>>> s = "buzz bar buzz foobuzz buzz"
>>> re.sub(r'(?<!\S)buzz(?!\S)', '***', s)
'*** bar *** foobuzz ***'