Python和egrep中正则表达式括号的区别

时间:2019-08-03 15:18:10

标签: python regex bash

我尝试在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中的括号是否有区别?

0 个答案:

没有答案