如果这是在某个地方发布我道歉,但我粗略的搜索没有发现任何东西.
在做一些Python编程时,我注意到以下命令:
re.sub("a*((ab)*)b", r"\1", "aabb")
Run Code Online (Sandbox Code Playgroud)
返回空字符串.但是sed中的等效命令:
echo "aabb" | sed "s/a*\(\(ab\)*\)b/\1/"
Run Code Online (Sandbox Code Playgroud)
回报ab.
我觉得python正则表达式开头的"a*"指令与两者都匹配a,导致"(ab)*"匹配零次,但我不知道sed是如何出现的ab.有谁知道造成这种情况的两个正则表达式引擎之间有什么区别?我相信它们都默认贪婪地匹配星星,但我发现sed可能从右边而不是左边匹配.任何见解将不胜感激.