如下正则表达式在 Python 中有效,如下所示:
>>> pattern = "[a-z]"
>>> re.findall(pattern,"a")
['a']
但是在 Javascript 中,等效代码不会产生结果:
pattern = /'[a-z]'/
pattern.test('a')
false
怎么会这样?它是完全相同的正则表达式代码,这让我相信语言处理它的方式存在一些差异。是这样吗?
最佳答案
您的模式中有文字引号。您的模式将匹配 "'a'"
但不匹配 "a"
。
所以不写
pattern = /'[a-z]'/
宁愿做
pattern = /[a-z]/
或
pattern = new RegExp("[a-z]")
如果您不希望 pattern
是全局的,请在赋值中使用 var pattern
。
关于javascript - 不同的语言对正则表达式的处理方式不同吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23182685/