不同语言处理正则表达式有何不同?

时间:2014-04-20 12:56:20

标签: javascript python regex

以下正则表达式在Python中有效,如下所示:

>>> pattern = "[a-z]"
>>> re.findall(pattern,"a")
['a']

但是在Javascript中,等效代码不会产生结果:

pattern = /'[a-z]'/
pattern.test('a')
false

怎么会这样?这是完全相同的正则表达式代码,这让我相信语言处理它的方式有所不同。是这种情况吗?

1 个答案:

答案 0 :(得分:3)

您的模式中有字面引号。您的模式将与"'a'"匹配,但不会与"a"匹配。

所以不要写

pattern = /'[a-z]'/  

而不是

pattern = /[a-z]/

pattern = new RegExp("[a-z]") 

如果您不希望var pattern成为全球性的,请在作业中使用pattern