正则表达式
- 指定字符串格式
- 使用单个字符串来匹配符合句法规则的字符串
- 语法繁琐
- 功能强大
- 许多语言支持正则表达式
正则表达式中的字符
- “.” 匹配除换行符"\n"之外的任何单字符
- “^” 匹配字符串的开始位置
- “$” 匹配字符串的结束位置或者换行符前的字符串结束位置
- “*” 匹配前一个字符任意次(>=0)
- “+” 匹配前一个字符至少一次(>=1)
- “?” 匹配前一个字符0或1次
- “?","+?","??" 放在 "”,"+","?"之后代表使用非贪婪模式匹配
- “{m}” 匹配前一个字符串m次
- “{m,n}” 匹配前一个字符串m-n次
- “{m,n}?” "{m,n}"的非贪婪模式
- “\” 转义特殊字符
- “[]” 对单个字符给出取值范围,[abc]表示字符取自(a,b,c), [a-z]表示a到z的字符
- “[^] " 对单个字符给出取值排除范围,”[ ^ abc]"表示字符不取(a,b,c), "[ ^ a-z]"表示不取a到z的字符
- “|” 表示左右表达式2选1
- “()” 标记新匹配表达式的开始和结束位置
- “(…)” 匹配子表达式并获取匹配结果
- “(?:…)” 匹配子表达式但不获取匹配结果
- “(?=…)” 在匹配子表达式的字符串开始处匹配查找字符串,不获取匹配结果
- “(?!..)” 在不匹配子表达式的字符串开始处匹配查找字符串,不获取匹配结果
- “(?<=…)” 反向匹配字表达式
- “(?<!..)” 反向不匹配子表达式
- “\w” 匹配字母、数字、下划线,等价于 [A-Za-z0-9_]
- “\W” 匹配非字母、数字、下划线,等价于 [^A-Za-z0-9_]
- “\s” 匹配所有空白符
- “\S” 匹配非空白符,不包括换行
- “\b” 匹配单词和空格间的表达式,“llo\b"匹配"Hello Welloo"中‘Hello’的"llo”
- “\B” 匹配单词中间间的表达式,“llo\B"匹配"Hello Welloo"中‘Welloo’的"llo”
- “\cX” 匹配由X指定的控制字符。x 的值必须为 [a-zA-Z],否则将 c 视为一个原义的 ‘c’ 字符。
- “\d” 匹配一个数字
- “\D” 匹配一个非数字
- “\f” 匹配一个换页符
- “\n” 匹配一个换行符
- “\r” 匹配一个回车符
- “\t” 匹配一个制表符
- “\v” 匹配一个垂直制表符