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