3、正则表达式分组和贪婪与懒惰

 

一、分组的简单

1、 将子表达式做成子集

2、 使用()进行分组

3、 方便match的字符串进行划分

4、 简单例子:(\d{1,3}\.){3}\d{1,3}

解析:这是一个匹配IP地址的表达式

(\d{1,3}\.)表示一个分组,用()括起来

{3}表示上面的分组要出现3次

5、 分组命名(?<groupname>exp)

Exp就是写政治表达式的,groupname是给它命名。

6、 (?:exp) 匹配exp正则表达式,不不过匹配的文本,也不给此分组分配分号

二、贪婪与懒惰

1、贪婪:尽可能多地匹配

       测试例子:

aabab

       正则表达式:a.*b

    结果是aabab而不是到第一个b就结束(即不是aab)

3、正则表达式分组和贪婪与懒惰

2懒惰:尽可能地匹配少

       测试例子:

aabab

       正则表达式:a.*?b

    结果是aab到第一个b出现就结束了,尽可能少字符

3、正则表达式分组和贪婪与懒惰

三、贪婪与懒惰总表

*?    重复任意次,当尽可能少匹配字符

+?   重复一次或更