基本语法
- [a-z]匹配小写的a-z
- [A-Z]匹配大写的A-Z
- [0-9]匹配0-9
- [a-zA-Z0-9]组合起来,匹配大小写的a-z或者0-9,基本上可以包括所有英文和数字的字符串了
- *设置 * 前面的匹配组可以出现0-n次,
- ?设置 ? 前面的匹配组可以出现0-1次,可有可无
- {1}设置{1}前面的匹配组必须出现1次
- {1,}设置{1,}前面的匹配组可以1-n次
- {1,2}设置{1,3}前面的匹配组可以出现1-3次
- () 小括号是把某一块分成一个组
- |判断或者,比如(aa|bb),则匹配aa或者bb,但是不能同时存在aa和bb
- 匹配字符(汉字,数字,符号等)可以直接写,比如匹配 :\,1,文字,则直接写: \,1,文字
- 匹配转义字符比如/,则需要/进行转义
普通字符
\w | 匹配字母、数字、下划线。等价于 [ A-Za-z0-9_ ] |
[\s\S] | 匹配所有。\s 是匹配所有空白符,包括换行,\S 非空白符,不包括换行。 |
\d | 匹配一个数字字符。等价于 [0-9]。 |
\D | 匹配一个非数字字符。等价于 [^0-9]。 |
匹配xx的时候,可能我们需要以xx开头,但是不想包括xx所以,看表格吧
语法 | 说明 |
(?:pattern) | 非获取匹配,匹配pattern但不获取匹配结果,不进行存储供以后使用。这在使用或字符“(|)”来组合一个模式的各个部分是很有用。例如“industr(?:y|ies)”就是一个比“industry|industries”更简略的表达式。 |
(?=pattern) | 非获取匹配,正向肯定预查,在任何匹配pattern的字符串开始处匹配查找字符串,该匹配不需要获取供以后使用。例如,“Windows(?=95|98|NT|2000)”能匹配“Windows2000”中的“Windows”,但不能匹配“Windows3.1”中的“Windows”。预查不消耗字符,也就是说,在一个匹配发生后,在最后一次匹配之后立即开始下一次匹配的搜索,而不是从包含预查的字符之后开始。 |
(?!pattern) | 非获取匹配,正向否定预查,在任何不匹配pattern的字符串开始处匹配查找字符串,该匹配不需要获取供以后使用。例如“Windows(?!95|98|NT|2000)”能匹配“Windows3.1”中的“Windows”,但不能匹配“Windows2000”中的“Windows”。 |
(?<=pattern) | 非获取匹配,反向肯定预查,与正向肯定预查类似,只是方向相反。例如,“(?<=95|98|NT|2000)Windows”能匹配“2000Windows”中的“Windows”,但不能匹配“3.1Windows”中的“Windows”。 |
(?<!pattern) | 非获取匹配,反向否定预查,与正向否定预查类似,只是方向相反。例如“(?<!95|98|NT|2000)Windows”能匹配“3.1Windows”中的“Windows”,但不能匹配“2000Windows”中的“Windows”。这个地方不正确,有问题 |