Java中的正则表达式工具包
正则表达式的基本语法 (部分参考)
由只代表自身的字面值和代表特定含义的元字符组成。
字符类
预定义字符类
- 用一些元字符来预先定义字符的范围
常见的对应关系
预定义字符 |
说明 |
d |
数字:[0-9] |
D |
非数字: [^0-9] |
w |
单词字符:[a-zA-Z_0-9] ,字母或数字或下划线 |
W |
非单词字符:[^w] |
s |
空白字符:[ tnx0Bfr] 空格,tab,回车或者换行等 |
S |
非空白字符:[^s] |
乘法器
惰性Non-greedy,勉强Reluctant
逻辑运算
主要分类
XY 表示X 后跟 Y
X|Y 表示 X 或 Y ,分支,你可以使用管道符号来实现匹配多种选择
(X) 表示X,作为捕获组。
X|Y
cat|dog 表示“匹配cat或dog”。
red|blue| 和red||blue 以及|red|blue 都是同样的意思,“匹配red或blue或空字符串”
a|b|c 跟[abc] 一样
- cat|dog| |表示“匹配
cat 或dog 或| 符号”。其中 | 被转义了,| 属于字面字符。
[cat|dog] 表示“找到a或c或d或d或g或o或t或一个管道符号|”.
(X)
边界匹配器
分类
符号 |
说明 |
^ |
行的开头,行头 |
$ |
行的结尾,行尾 |
b |
单词边界 |
B |
非单词边界 |
A |
输入的开头 |
G |
上一个匹配的结尾 |
Z |
输入的结尾,仅用于最后的结束符(如果有的话) |
z |
输入的结尾 |
单词边界
行边界
每一块文本会分解成一个或多个行,用换行符分隔。
像单词边界一样,行边界也不是字符。它们宽度为零。
文本不是以换行符结束,而是以行结束。然而,任何行,包括最后一行,可以包含零个字符。
行头位置是在一个换行符和下一行的第一个字符之间。与单词边界一样,在文本的开头也算作一个起始的行。
行尾位置是在行的最后一个字符和换行符之间。与单词边界一样,文本结束也算作行结束。
用法:
^$ 表示“匹配空行”。
^.*$ 将会匹配整个文本,因为换行符是一个字符,所以. 会匹配它。为了匹配单行,要使用惰性乘法器,^.*?$ 。
^$ 表示“匹配尖符号后跟着一个美元符号”
[$] 表示“匹配一个美元符”。然而,[^] 是非法单正则表达式。要记住的是尖符号在方括号中时有不同的特殊含义。把尖符号放在字符类中,这么用[^] 。
文本边界
- 从“行开始”和“行结束”变成“文本开始”和“文本结束”。
- 元字符
A 和z
(编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|