正则表达式比较

zil*_*n01 4 regex

我(最后)开始学习正则表达式,我想知道这两个模式字符串之间是否有任何明显的区别.我正在尝试匹配诸如" Title=Blah"之类的行,并在两组中匹配"Title"和"Blah".

问题出现在像" Title=The = operator" 这样的标题上.以下是解决问题的两种选择:

^([^=]+)=(.+)$
^(.+?)=(.+)$
Run Code Online (Sandbox Code Playgroud)

这两者之间是否有任何区别,无论是性能方面还是功能方面?

cha*_*aos 5

第一个要求在a =之前至少有一个非字符=匹配,而第二个不匹配; 它会匹配一个领先的==.

至于性能,我没有预料到有意义的差异,但如果你真正关心,唯一要做的就是分析它.我将通过编写一对脚本来完成,每个脚本运行其中一个方法几十万次,并使用Unix time命令对它们进行计时.