我正在尝试基于两个分隔符拆分字符串,如下所示:
"some-str_to_split".split(/-|_/)
所以它应该根据“ - ”和“_”拆分字符串。它工作正常,但Webstorming发出警告:
正则表达式中的单字符交替
答案 0 :(得分:6)
请注意,-|_
是匹配-
或_
的模式,但每次正则表达式引擎在字符串中的某个位置进行求和时,-
都会针对_
进行测试首先,如果不匹配,则尝试[-_]
。这涉及所谓的回溯。当您使用libusb-1.0.dll
,即所谓的character class时,正则表达式引擎使用编译的迷你程序,可以更快地执行搜索,从而消除回溯机制。
因此,警告只是提示您可以增强您的模式。如果有2个字符,性能上的差异是可以忽略的,如果有100多个替代品,差异将更加明显。