以下正则表达式在Python中有效,如下所示:
>>> pattern = "[a-z]"
>>> re.findall(pattern,"a")
['a']
但是在Javascript中,等效代码不会产生结果:
pattern = /'[a-z]'/
pattern.test('a')
false
怎么会这样?这是完全相同的正则表达式代码,这让我相信语言处理它的方式有所不同。是这种情况吗?
答案 0 :(得分:3)
您的模式中有字面引号。您的模式将与"'a'"
匹配,但不会与"a"
匹配。
所以不要写
pattern = /'[a-z]'/
而不是
pattern = /[a-z]/
或
pattern = new RegExp("[a-z]")
如果您不希望var pattern
成为全球性的,请在作业中使用pattern
。