正则表达式 - 。*和(。*)之间有什么区别?

时间:2014-07-10 17:22:43

标签: regex

正则表达式中.*(.*)之间的区别是什么?

从我所见,

AB.*DE 

AB(.*)DE 

似乎匹配相同的东西,但我想知道是否有任何差异,所以我使用正确的。

我需要能够匹配AB和DE之间的任意数量的字符,如果它们之间没有任何东西(ABDE),我甚至可以匹配。

如果.*(.*)意思相同,那么在标准/最佳做法方面是否会使用“更好”的产品?

3 个答案:

答案 0 :(得分:2)

  • .*匹配任何字符零次或多次。
  • (.*) - 匹配的字符存储在一个组中,以便以后反向引用(()中的任何字符都会被限制)。
  • AB.DE匹配字符串ABanycharDE。 Dot表示除换行符之外的任何字符。
  • AB(.)DE匹配AB和DE并捕获中间字符。

答案 1 :(得分:1)

括号表示capture group

答案 2 :(得分:0)

没有区别。两者都将匹配任何字符零+次。但是,捕获组被认为更好,因为它允许您将条件组合在一起。这使得正则表达式看起来更好,更具可读性,就像数学方程式中的括号使得等式看起来更好。