如何以下量词不同 - 对于场景,速度等。
-
?
,??
和?+
所有匹配0或1次 。 -
*
,*? and
*? and
* +`所有比赛0次或更多次 。 -
+
,+?
和++
所有匹配1次或多次 。
-
?
,*
和+
是贪婪的 。 -
??
,*?
和+?
不愿意/懒惰 。 -
?+
,*+
和++
有着很强的占有欲 。
谁能帮我了解这些术语的含义? 为什么有相同的作业中的每个量词的三个变化?
如何以下量词不同 - 对于场景,速度等。
?
, ??
和?+
所有匹配0或1次 。 *
, *? and
*? and
* +`所有比赛0次或更多次 。 +
, +?
和++
所有匹配1次或多次 。 ?
, *
和+
是贪婪的 。 ??
, *?
和+?
不愿意/懒惰 。 ?+
, *+
和++
有着很强的占有欲 。 谁能帮我了解这些术语的含义? 为什么有相同的作业中的每个量词的三个变化?
就拿串
aaaab
看看下面的正则表达式匹配如何吧:
Regex Submatches
group 1 group 2 group3
(a?)(a*)(ab) a aa ab
(a??)(a*)(ab) aaa ab
(a?+)(a*)(ab) a aa ab
(a*)(a?)(ab) aaa ab
(a*?)(a?)(ab) aa a ab
(a*+)(a?)(ab) aaaa <Match fails!>
(a+)(a*)(ab) aaa ab
(a+?)(a*)(ab) a aa ab
(a++)(a*)(ab) aaaa <Match fails!>
说明:
a?
尝试匹配一个a
,但它的准备,如果这是必要的整场比赛成功匹配什么。 a??
尝试匹配什么,但它准备匹配一个a
,如果这是必要的整场比赛成功。 a?+
尝试匹配一个a
。 如果能做到这一点,就不会退缩如果这是必要的整体匹配成功匹配什么。 如果它不能匹配的a
,那么它会很乐意没有匹配,虽然。 a*
尝试匹配尽可能多的a
S作为是可以的,但它的准备,以配合较少的a
,如果这是必要的整场比赛成功S,甚至什么都没有。 a*?
尝试匹配什么,但它的准备,以匹配同样多a
S作为绝对必要的,以便为整个比赛的成功,但不多。 a*+
尝试尽可能多的符合a
S作为它可以。 如果能做到这一点,就不会退缩,以配合较少的a
,如果说有必要对整个比赛的成功秒。 如果不能匹配,甚至一个a
的话,那会很乐意没有匹配,虽然。 a+
尝试匹配尽可能多的a
S作为是可以的,但它的准备,以配合较少的a
,如果这是必要的整场比赛成功秒(但至少有一个)。 a+?
尝试匹配只有一个a
,但它准备匹配同样多a
S作为绝对必要的,以便为整个比赛的成功,但不多。 a++
试图尽可能多的符合a
S作为它可以。 如果能做到这一点,就不会退缩,以配合较少的a
,如果说有必要对整个比赛的成功秒。 如果不能匹配,甚至一个单一的a
,则正则表达式失败。