正则表达式就是一种对字符串的表述规则,比如一串数字,一串字符但不包含数字,以A开头的字符串等等。 正则表达式中有两类主要的符合,一种是表达字符类型的,比如字母,数字之类,另一种是表达数量的,也就是量词,比如出现一次这样的。
字符
1.基本字符
所有ASCII字符,比如a,1,_等,但是有些符号需要\转义
2.字符集
a-z形如这样的表示a-z中任何一个字符都可以 2.[ab123]形如这样的表示ab123中任何一个字符.表示任何一个字符,但是不包括换行符[^a]表示除了a其他字符都可以- 还有一些预定义的字符集
| 字符集 | 含义 |
|---|---|
| \d | 数字 [0-9] |
| \D | [^\d] |
| \w | [a-zA-Z0-9_] |
| \W | [^\w] |
| \s | 所有空格字符 |
| \S | [^\s] |
量词
量词总是修饰量词前的一个实体(字符,字符集,组)
| 量词 | 含义 |
|---|---|
| * | >=0次 |
| + | >=1次 |
| ? | 0或1次 |
| {m} | m次 |
| {n,m} | n<=num<=m num代表次数 |
组合
可以通过()将一组字符作为一个整体描述就像一个字符那样去作用,比如(the)就是将the看作一个整体 表示或,ab表示a或者b都可以,一般和()一起使用
其他
正则表达式基本规则就这些,也就是字符和量词组合起来表述一种字符串规则,还有一些标志用到时候再补充吧。
一些正则表达式
写的一些正则表达式,记录一下
ip匹配(可能将部分字符串作为ip,如355.0.0.1->55.0.0.1)
1
2((\d\d{2}([01]\d{2}2([0-4]\d5[0-5])))\.){3}(\d\d{2}([01]\d{2}2([0-4]\d5[0-5])))
(([01]?\d?\d2([0-4]\d5[0-5]))\.){3}([01]?\d?\d2([0-4]\d5[0-5]))2.判断一个字符串是否是ip地址(只能包含ip地址,不能有任何额外字符)
1
^(([01]?\d?\d2([0-4]\d5[0-5]))\.){3}([01]?\d?\d2([0-4]\d5[0-5]))$