什么是正则表达式:用来在一段不定字符、不定长度、具有简单规律的字符串中进行字符匹配的按照一定结构书写的表达式
什么事子表达式:'()' 代表一个子表达式,将其中的内容视为一个整体进行处理。
子表达式是一个大的表达式的一部分,把一个表达式划分为多个子表达式的目的是为了把那些子表达式当作一个独立的元素来使用。子表达式必须用(和)括起来。
子表达式中可以嵌套子表达式,理论上可以无限嵌套。
子表达式中可以嵌套中表达式,将嵌套的所有中表达式作为一个整体进行匹配,同时满所有个中表达式条件即为匹配成功。
什么是中表达式:'[]' 代表一个中表达式,将其中内容于字符串中每一个字符进行匹配,匹配条件为 '[]' 中的内容。
中表达式中可以嵌套子表达式,将嵌套的子表达式作为条件进行匹配,满足任意一个子表达式中的条件即为匹配成功。
什么事大表达式:'{}' 代表一个大表达式,将其中内容于字符串进行匹配,用于长度匹配
'{a,b}' 取前方一个子表达式(或一个字符)。当出现第 a 此后,开始从第一次出现的位置匹配,每次匹配长度为 b
'{a,}' 取前方一个子表达式(或一个字符)。当出现第 a 此后,开始从第一次出现的位置匹配,每次匹配至不满足条件
'{a}' 取前方一个子表达式(或一个字符)。当出现第 a 此后,开始从第一次出现的位置匹配,每次匹配长度为 a
文本:Your operation systemis Windows 2000.
正则表达式:nbsp;{2,}
结果:Your operation systemis Windows 2000.
分析:这里使用模式想匹配2个或2个以上的非换行空格,但是从结果可以看出,没有匹配到任何东西,因为nbsp;{2,}这个模式只能匹配到像nbsp;;;;;;;这样以nbsp开头,2个或2个以上连续分号的文本。因为重复匹配都是紧挨着重复匹配元字符之前的那个字符的多次重复。
正则表达式:(nbsp;){2,}
分析:将 (nbsp;) 作为一个整体进行匹配,条件为 (nbsp;) 连续两次出现。
文本:1988-03-11
正则表达式:[0-9][0-9]
分析:
中表达式 [0-9] :匹配 '0-9' 中所有数字
[0-9][0-9]:同时两项满足 '0-9'
合并起来即为:匹配字符串中,条件为 '0-9' 的连续两项
结果:19 88 03 11
文本:1988-03-11
正则表达式:[0-9]|[0-9]
分析:
中表达式 [0-9] :匹配 '0-9' 中所有数字
|:或符号
合并起来即为:匹配字符串中,条件为 '0-9' 或 '0-9' 的所有项
结果:1 9 8 8 0 3 1 1
文本:1988-03-11
正则表达式:(19|20)d{2}
分析:
子表达式 (19|20) :满足开头为 '19' 或 '20' 的匹配项
d:匹配所有数字
{2}:前一个表达式连续两次出现
合并起来即为:匹配字符串中,条件为 '19' 或 '20' 开头且连续出现两次的所有数字项
结果:1988