re正则表达式解析
程序员文章站
2022-04-14 08:53:14
re正则表达式
项目
价格
.
代表一个任意字符
^
以字符开头 例如:“^b”以b开头 “^a.*”以a开头后面又任意字符的一...
re正则表达式
项目 | 价格 |
---|---|
. | 代表一个任意字符 |
^ | 以字符开头 例如:“^b”以b开头 “^a.*”以a开头后面又任意字符的一个字符串 |
$ | 以字符结尾 例如: “3 |
* | 代表前面的字符可以出现任意多遍 例如:“1*” 1可以出现任意多便 “.*”任意字符出现任意多遍 |
逆贪婪模式 默认一直往右扫,扫到最后一个合适的才退出,例如:”booobb”->匹配“.(b.*b).”有 booob 和 bb 和 booobb 由于 bb 在最后匹配到,返回的是 “bb”,“.(b.*b).”得到 booobb, 加上“?“,所以就是从左往右,因为后面的那个 匹配串中后面那个b还是贪婪匹配,所以会尽可能多的匹配多的字符,这个时候 加上 “.(b.b).“ , 返回的就是 ”booob“ ps.”()**”会返回括号内的内容 | |
+ | 代表出现至少一次 “*”可以一次都不出现 |
{2} | 限定前面字符出现的次数 ”.(b.{2}b).“ 代表bb之间有两个任意字符 |
{2,} | 限定前面字符出现的次数 至少为两次 |
{2,5} | 限定前面字符出现的次数 为2~5次 |
. | 代表一个任意字符 |
| | 或者关系 ”bobby | bobby123“代表匹配字符串为 bobby 或者 bobby123 |
[ ] | 中括号中的字符只要满足任意一个,就可以。“[abcd]ooby123”“[0-9]”代表0~9“[^1]”不等于1 进入“[]”的符号 就没有之前的意义了 既 “[ . ]”就是代表 点号 的意思 而不再是 任意字符 其他字符同理 |
\s | 代表空格、换行、tab缩进等所有的空白 “(你\s好)”->“(你 好)” |
\s | 代表 只要不是空格都可以 |
\w | 代表等价于[0-9 a-z a-z ], 也就是a~z 和 a~z 和 0~9 和 下划线“” 中间的任意一个 |
\w | 非\w所代表的字符 如 空格 ~!@#$%^&*() 之类 |
[\u4e00-\u9fa5] | 代表一个汉字 这是个固定写法 不能更改 例如:“study in 三峡大学”提取出什么大学, ”.([\u4r00-\u9fa5]+大学)“ 这里由于前面有其他字符 所以 前面要加上 “.” 又由于又贪婪匹配的原因 会自动取出最小的符合情况的 所以如果不加上”” 就会取出 “峡大学”, 因此加上 “” 逆贪婪匹配,取出三峡大学 |
\d | 代表的是数字的意思 例如:“xxx出生于1998年” -> “.(\d{4})年”或者”.(\d+)年” |