1
我写逐项水平的解析器:正则表达式重复组或显式模式
1.0.0.0.0
1.1.0.0.0
1.2.0.0.0
2.0.0.0.0
我写的正则表达式来匹配该模式中使用非重复组:
\d{1,4}(?:\.\d{1,4}){4}
但在审查我的同事建议这个重写:
\d{1,4}\.\d{1,4}\.\d{1,4}\.\d{1,4}\.\d{1,4}
这是一个主观的东西?或者比另一个更好?后者更容易阅读给不了解正则表达式语法的人。在这种情况下,性能不是问题,但是对于更大的目标,性能会更好吗?
正则表达式引擎将是.Net。
编辑:我正在阅读所有的评论和答复。感谢大家的意见和建议。
至少,第一个是毫无疑问更好,我的眼睛更具可读性。 – anubhava 2015-02-23 04:02:06
第二个是最好的,因为没有回溯发生在第二个,而回溯将发生在第一个.. – 2015-02-23 04:04:30
在没有捕获组没有差异。通过捕获组,第二种方法的优点是每个数字都可以在单独的捕获组中使用。 – dasblinkenlight 2015-02-23 04:05:08