1.正则表达式定义
完整的正则表达式由两种字符构成,特殊字符(例如*,称为元字符)和其他普通文本字符。为了便于理解,可以把正则表达式想象为普通的语言,普通字符对应普通语言的单词,而元字符对应语法,根据正则的规则,按照语法把单词组合起来。
2.字符组
字符组([ab])的内容是在同一个位置能够匹配的若干字符,所以字符组内部的关系意味着“或”(a或b),在字符组以外,普通字符的关系是“and then”(接下来是),意思是首先匹配一个字符,接下来匹配一个字符。例如/gr[ae]y/,首先匹配g,然后匹配r,然后匹配a或e,最后匹配y,匹配两种结果gray,grey。
在字符组内部,元字符“-”表示一个范围,[1-6]和[123456]是完全一样的。值得注意的是,只有在字符组内部,连字符才是元字符,否则它就只能匹配普通的连字符号,其实即使在字符组内部,它也不一定就是元字符,如果连字符出现在字符组的开头,它就是一个普通的字符,而不是一个范围。
同样的道理,问号和点号通常被当作元字符处理,但在字符组内,它只是普通字符。
排除型字符组[^u],匹配除了u以外的所有字符。
元字符 | 名称 | 匹配对象 |
---|---|---|
. | 点号 | 单个任意字符 |
[...] | 字符组 | 列出的任意字符 |
[^...] | 排除型字符组 | 未列出的任意字符 |
^ | 脱字符 | 行的起始位置 |
$ | 美元符 | 行的结束位置 |
l | 竖线 | 匹配分隔两边的任意一个表达式 |
(...) | 括号 | 限制竖线的作用范围 |
网友评论