正则表达式处理重复字符串时出现的问题

定义一个组,引用第一个组(因为“+”,所以处理成 aaaaaaa(......全是a))所有含有a的串都被切



定义两个组,引用第一个组(因为“+”,处理成bbbbbbbb{......全是b})在所有字符串中,以a开始,与b相连的子串中,对b的重复进行切割。

再来一个与上面对比:


我把上面的主串改了一下,就显而易见了。

======================================================================================================================================================

定义两个组,引用第二个组(这里处理成(ab{+}),ab中,b多次,就是abbbbbbbbbbb(......后面全是b))在所有字符串中,以a开始,与b相连的子串中,对abbbbbb......进行重复切割(看到a被切一次,这是可以理解的)。



更改主串看看:


======================================================================================================================================================

定义两个组,引用第一个组(把点当作a并和前面的a连起来,切掉重复a,加上点(a),输出)【解释下就是a(.)被处理成了:在字符串中的所有含a的串中,切掉重复并加上a】在所有字符串中,以a开始,与“.”相连的子串中,切掉重复的“.”。这里把“.”当作“a”。



更改主串:


与上面a(b)再做个对比,就更加明了了。

(a.)就是切第一次出现的a重复,再加上a。(a(.))是切所有含有a的重复,再加上a。

======================================================================================================================================================

定义两个组,引用第二个组(把点当作a,切掉重复a,输出)在所有字符串中,以a开始,与“.”相连的子串中,切掉重复的

a“.”“.”“.”......(前面的a被切一次)



更改主串:


连a一块切。

猜你喜欢

转载自blog.csdn.net/baidu_38760069/article/details/80015596