β

[正则] 预定义字符类型

Aptusource.orgAptusource.org 240 阅读

Java 中提供了一系列有用的预定义字符类型,方便对一些常用的正则表达式进行速记。

正则表达式 描述
. 任意字符(有可能包括行结束符)
\d 任意数字:[0-9]
\D 任意非字符:[^0-9]
\s 一个空白字符:[ \t\n\x0B\f\r]
\S 一个非空白字符:[^\s]
\w 一个单词字符:[a-zA-Z_0-9]
\W 一个非单词字符:[^\w]

在上表中,左边列的正则表达式都是右边列的简短写法。例如,\d 表示 0 到 9 的数字,\w 表示单词字符(0 到 9,a 到 z 的大写和小写字母)。尽可能地使用预定义类型,会让代码更简短易读并且不易出错。

注意,在字符串字面量一文中说过,反斜线在字符串字面量中作为转义字符存在。而很多预定义类型都是以反斜线开始,因此,如果需要在字符串字面量中使用预定义类型,那么就要对反斜线进行转义,例如:

private final String REGEX = "\\d"; // a single digit

在这个例子中 \d 表示单个数字,而前面的反斜线用于转义,但是如果用测试工具进行测试,因为测试工具直接读取控制台输入,而没有使用字符串字面量,因此不需要额外的转义字符。

下面我们来测试一下预定义字符类型:

请输入正则表达式:.
请输入检索文本:@
检索到匹配文本"@"从位置 0 到 1。
请输入正则表达式:.
请输入检索文本:1
检索到匹配文本"1"从位置 0 到 1。
请输入正则表达式:.
请输入检索文本:a
检索到匹配文本"a"从位置 0 到 1。
请输入正则表达式:\d
请输入检索文本:1
检索到匹配文本"1"从位置 0 到 1。
请输入正则表达式:\d
请输入检索文本:a
没有检索到匹配的文本。
请输入正则表达式:\D
请输入检索文本:1
没有检索到匹配的文本。
请输入正则表达式:\D
请输入检索文本:a
检索到匹配文本"a"从位置 0 到 1。
请输入正则表达式:\s
请输入检索文本: 
检索到匹配文本" "从位置 0 到 1。
请输入正则表达式:\s
请输入检索文本:a
没有检索到匹配的文本。
请输入正则表达式:\S
请输入检索文本: 
没有检索到匹配的文本。
请输入正则表达式:\S
请输入检索文本:a
检索到匹配文本"a"从位置 0 到 1。
请输入正则表达式:\w
请输入检索文本:a
检索到匹配文本"a"从位置 0 到 1。
请输入正则表达式:\w
请输入检索文本:!
没有检索到匹配的文本。
请输入正则表达式:\W
请输入检索文本:a
没有检索到匹配的文本。
请输入正则表达式:\W
请输入检索文本:!
检索到匹配文本"!"从位置 0 到 1。
作者:Aptusource.orgAptusource.org
最好的 Java 技术博客
原文地址:[正则] 预定义字符类型, 感谢原作者分享。

发表评论