面试题答案
一键面试- 正则表达式:
aab+?c
- 回溯控制解释:
- 在这个正则表达式中,
b+?
是关键部分。b+
表示匹配一个或多个b
,而?
在这里使b+
变成非贪婪模式(惰性模式)。 - 当正则表达式引擎从左到右匹配字符串
aabbbccd
时,遇到aab
后,对于b+?
,它会先尝试匹配尽可能少的b
,即先匹配一个b
,然后尝试匹配后面的c
。由于当前匹配到b
后紧跟的字符是b
而不是c
,所以正则表达式引擎会回溯,继续匹配一个b
,再次尝试匹配c
,直到成功匹配到c
或者没有更多的b
可供匹配。这样就保证了既匹配尽可能多的b
,又能匹配到后面的c
。如果使用贪婪模式b+
,它会一直匹配所有的b
,导致后面无法匹配到c
。
- 在这个正则表达式中,