在查找功能和片段分割规则中所使用的是 Java 所支持的正则表达式。如果你需要更多详细信息,请参阅 Java 正则表达式文档。参见以下的参考和范例。
注意
本章内容是为高级用户准备的,用于定义自己的分割规则变体或设计更复杂更强大的关键字查找内容。
表 D.1. 正则表达式 - 标志
| 结构 |
……匹配以下内容: |
| (?i) |
启用不区分大小写的匹配(默认情况下,模式区分大小写)。 |
表 D.2. 正则表达式 - 字符
| 结构 |
……匹配以下内容: |
| x |
字符 x,除了以下情况…… |
| \uhhhh |
十六进制值为 0xhhhh 的字符 |
| \t |
Tab(制表符)('\u0009') |
| \n |
新行(换行)('\u000A') |
| \r |
回车('\u000D') |
| \f |
换页('\u000C') |
| \a |
告警(响铃)('\u0007') |
| \e |
Esc(退出)('\u001B') |
| \cx |
对应于 x 的控制字符 |
| \0n |
八进制值为 0n(0 <= n <= 7)的字符 |
| \0nn |
八进制值为 0nn(0 <= n <= 7)的字符 |
| \0mnn |
八进制值为 0mnn(0 <= m <= 3, 0 <= n <= 7)的字符 |
| \xhh |
十六进制值为 0xhh 的字符 |
表 D.3. 正则表达式 - 转义
| 结构 |
...匹配下列内容 |
| \ |
不匹配任何内容,但会转义后继的字符。需要输入元字符 !$()*+.<>?[\]^{|} 之一来匹配其自身时就必须这样。 |
| \\ |
比如,这是反斜杠字符 |
| \Q |
不匹配任何内容,但转义后继 \E 之前的所有字符 |
| \E |
不匹配任何内容,但结束由 \Q 开始的转义 |
表 D.4. 正则表达式 - Unicode 字区与分类类别
| 结构 |
...匹配下列内容 |
| \p{InGreek} |
希腊字母区中的字符(单字区) |
| \p{Lu} |
大写字母(单分类) |
| \p{Sc} |
货币符号 |
| \P{InGreek} |
任何不在希腊字母区中的字符(取反) |
| [\p{L}&&[^\p{Lu}]] |
除大写字母外的所有字母(减法) |
表 D.5. 正则表达式 - 字符类
| 结构 |
...匹配下列内容 |
| [abc] |
a、b 或 c(单类) |
| [^abc] |
除 a、b 或 c 之外的任何字符(取反) |
| [a-zA-Z] |
a 到 z 和 A 到 Z 的字符,包含边界(区间) |
表 D.6. 正则表达式 - 预定义字符类
| 结构 |
...匹配下列内容 |
| . |
任意字符(行终止符除外) |
| \d |
数字:[0-9] |
| \D |
非数字:[^0-9] |
| \s |
空白字符:[ \t\n\x0B\f\r] |
| \S |
非空白字符:[^\s] |
| \w |
单词字符:[a-zA-Z_0-9] |
| \W |
非单词字符:[^\w] |
表 D.7. 正则表达式 - 边界匹配符
| 结构 |
...匹配下列内容 |
| ^ |
行首 |
| $ |
行尾 |
| \b |
单词边界 |
| \B |
非单词边界 |
表 D.8. 正则表达式 - 贪婪量词
| 结构 |
...匹配下列内容 |
| X
?
|
X,出现一次或不出现 |
| X
*
|
X,出现零次或多次 |
| X
+
|
X,出现一次或多次 |
注意
贪婪量词会尽可能多地匹配。例如,
a+
会匹配
aaabbb
中的 aaa
表 D.9. 正则表达式 - 懒惰(非贪婪)量词
| 结构 |
...匹配下列内容 |
| X?? |
X,出现一次或不出现 |
| X*? |
X,出现零次或多次 |
| X+? |
X,出现一次或多次 |
注意
非贪婪量词会尽可能少地匹配。例如,
a+?
会匹配
aaabbb
中的第一个
a
表 D.10. 正则表达式 - 逻辑运算符
| 结构 |
...匹配下列内容 |
| XY |
X 后跟着 Y |
| X|Y |
X 或 Y |
| (XY) |
XY 作为整体出现 |