正则表达式
Posted PrivateO2
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了正则表达式相关的知识,希望对你有一定的参考价值。
正则表达式
一:了解
- 在Java中 "\\"表示“我要插入一个正则表达式的反斜线,所以其后的字符具有特殊意义”。
- 如果想插入一个普通的反斜线,则应该这样"\\\\",不过制表符和换行符之类的东西只需要使用单反斜线:\n 、\t.
- ?:可以表示可能的情况。比如 -?表示可能有一个负号在最前面(也可能没有,但不能出现+开头)
二:基础
1. 字符
字符 | 字符 |
---|---|
B | 指定字符B |
\xhh | 十六进制为0xhh的字符 |
\uhhhh | 十六进制为0xhhhh的Unicode字符 |
\t | 制表符Tab |
\n | 换行符 |
\r | 回车 |
\f | 换页 |
\e | z转义 |
2. 字符类
. (小圆点) | 任意字符 |
[abc] | 同a |
[^abc] | 除了abc之外的任何字符 |
[a-zA-Z] | 从a-z或从A-Z的任何字符 |
[abc[hij]] | 同a |
[a-z&&[hij]] | 任意hi或j |
\s | 空白符(空格、tab、换行符、换页、回车) |
\S | 非空白符同[^\s] |
\d | 数字[0-9] |
\D | 非数字[^0-9] |
\w | 词字符[a-zA-Z0-9] |
\W |
3. 逻辑操作符
XY | Y跟在X后面 |
X | Y |
(X) | 捕获组。可以在表达式中\i引用第i个捕获组 |
4. 边界匹配符
^ | 一行的起始 |
$ | 一行的结束 |
\b | 词的边界 |
\B | 非词的边界 |
\G | 前一个匹配的结束 |
5. 量词
- 贪婪型:为所有可能的模式发现更多的匹配。若模式只能匹配到第一个可能的字符组,因为它是贪婪的,所以会继续向下匹配。
- 勉强型:用问号来指定用于匹配满足模式所需的最少字符数。(最少匹配的、非贪婪的)
- 占有型:用于防止正则表达式失控
.
注意:X必须用()括起来
贪婪型 | 勉强型 | 占有型 | 如何匹配 |
---|---|---|---|
X? | X?? | X?+ | 零个或一个X |
X* | X*? | X*+ | 零个或多个X |
X+ | X+? | X++ | 一个或多个X |
X{n} | X{n}? | X{n}+ | 恰好n次X |
X{n,} | X{n,}? | X{n,}+ | 至少n次X |
X{n,m} | X{n,m}? | X{n,m}+ | X至少n次,且不超过m次 |
以上是关于正则表达式的主要内容,如果未能解决你的问题,请参考以下文章