相关疑难解决方法(0)

sed和python正则表达式之间的不一致

如果这是在某个地方发布我道歉,但我粗略的搜索没有发现任何东西.

在做一些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可能从右边而不是左边匹配.任何见解将不胜感激.

python regex sed

15
推荐指数
1
解决办法
908
查看次数

标签 统计

python ×1

regex ×1

sed ×1