我尝试在Python和Bash中使用相同的正则表达式模式,但是当模式中带有括号时,它不能以相同的方式工作。 例如,我尝试查看文章中的每个“ the”。 这是图案
"(^|[^a-zA-Z])[Tt]he($|[^a-zA-Z])"
在Bash中,我写
egrep --color "(^|[^a-zA-Z])[Tt]he($|[^a-zA-Z])" Untitled.txt
但是在Python中,如果我这样做:
pattern=re.compile(r"(^|[^a-zA-Z])[Tt]he($|[^a-zA-Z])")
re.findall(pattern, text)
我想要的是仅在括号内匹配的结果,而我想要的是“ the”。
如果我想拥有与Bash相同的效果,我必须重复:
pattern=re.compile(r"^[Tt]he|[^a-zA-Z][Tt]he|[Tt]he$|[Tt]he[^a-zA-Z]")
所以,我的问题是,Python和Bash中的括号是否有区别?