正则表达式中.*
和(.*)
之间的区别是什么?
从我所见,
AB.*DE
和
AB(.*)DE
似乎匹配相同的东西,但我想知道是否有任何差异,所以我使用正确的。
我需要能够匹配AB和DE之间的任意数量的字符,如果它们之间没有任何东西(ABDE),我甚至可以匹配。
如果.*
和(.*)
意思相同,那么在标准/最佳做法方面是否会使用“更好”的产品?
答案 0 :(得分:2)
.*
匹配任何字符零次或多次。(.*)
- 匹配的字符存储在一个组中,以便以后反向引用(()
中的任何字符都会被限制)。AB.DE
匹配字符串ABanycharDE。 Dot表示除换行符之外的任何字符。AB(.)DE
匹配AB和DE并捕获中间字符。答案 1 :(得分:1)
括号表示capture group。
答案 2 :(得分:0)
没有区别。两者都将匹配任何字符零+次。但是,捕获组被认为更好,因为它允许您将条件组合在一起。这使得正则表达式看起来更好,更具可读性,就像数学方程式中的括号使得等式看起来更好。