Java Regex 中的元字符
Regex 代表正则表达式。可以使用正则表达式作为 API 来定义模式以搜索或修改文本。它经常用于指定字符串约束,包括密码和电子邮件验证。一旦您理解了这个术语,您就可以使用正则表达式来评估您的正则表达式。
Java Regex 在 java.util.regex 包中提供了三个类和一个接口,即 MatchResult 接口、Matcher 类、Pattern 类、PatternSyntaxException 类。Java 正则表达式功能通过匹配器和模式类提供。
Java Regex 中的元字符
Java Regex 中的元字符用作常见匹配模式的短代码。元字符前面带有反斜杠 (\)。所有元字符列示如下:
REGEX |
DESCRIPTION |
|---|---|
. |
任意字符(可能匹配终止符,也可能不匹配) |
\d |
任意数字,[0-9] 的缩写 |
\D |
任意非数字,[0-9] 的缩写[^0-9] |
\s |
任何空格字符,缩写为 [\t\n\x0B\f\r] |
\S |
任何非空格字符,缩写为 [^\s] |
\w |
任何单词字符,缩写为 [a-zA-Z_0-9] |
\W |
任何非单词字符,缩写为[^\w] |
\b |
单词边界 |
\B |
非单词边界 |
元字符示例
// Java 程序演示 Java Regex 中的所有元字符
import java.io.*;
import java.util.regex.*;
public class example {
public static void main(String[] args) {
// \d- Number
// \D- Non-Digit
// \s- Any whitespace
// \S- Non whitespace Character
// \w- Any word character like numbers/ characters
// \W- Special symbols
System.out.println(Pattern.matches(
"\d\D\s\S\w\W", "1G FG!")); // true
System.out.println(Pattern.matches(
"\d\D\s\S\w\W", "Hello")); // false
}
}
输出
true false
元字符说明
数字和非数字元字符 (\d, \D)
示例
// Java 程序演示与数字和非数字相关的元字符
import java.io.*;
import java.util.regex.*;
public class example {
Public static void main(String[] args) {
// \d 代表数字
// 代表数值,因此返回 true
System.out.println(Pattern.matches("\d", "2")); // true
// 将数值与字符进行比较,因此返回 false
System.out.println(Pattern.matches("\D", "a")); // false
// \D 代表非数字
// 将非数字与字符进行比较,因此返回
// true
System.out.println(Pattern.matches("\D", "a")); // true
// 将非数字与数字进行比较,因此返回
// false
System.out.println(Pattern.matches("\D", "2")); // false
}
}
输出
true false true false
解释
d 元字符代表从 0 到 9 的数字。因此,当我们在范围内比较"d"时,它返回 true。否则返回 false。
D 元字符代表非数字,它接受除数字以外的任何内容。因此,当我们将"D"与任何数字进行比较时,它返回 false。否则返回 true。
空白和非空白元字符 (\s, \S)
示例
// Java 程序演示空白和非空白元字符
import java.io.*;
import java.util.regex.*;
Class example {
public static void main(String[] args) {
// 将任何空白字符与一个空格进行比较,否则返回 false
System.out.println(Pattern.matches("\s", " ")); // true
System.out.println(Pattern.matches("\s", "2")); // false
// 将任何非空白字符与一个非空白字符进行比较,否则返回 true
System.out.println(Pattern.matches("\S", "2")); // true
System.out.println(Pattern.matches("\S", " ")); // false
}
}
Output
true false true false
解释
s 表示空格、制表符、换行符等空白字符。因此,当我们将"s"与空白字符进行比较时,它将返回 true。否则为 false
S 表示接受除空白之外的所有内容的非空白字符,因此当我们将"S"与空白字符进行比较时,它将返回 false。否则为 true。
单词和非单词元字符 (\w, \W)
示例
// Java 程序演示单词和非单词元字符
import java.io.*;
import java.util.regex.*;
public class example {
public static void main(String[] args){
// 将任何单词字符与单词进行比较
// 字符,因此返回 true,否则返回 false
System.out.println(Pattern.matches("\w", "a")); // true
System.out.println(Pattern.matches("\w", "2")); // true
System.out.println(Pattern.matches("\w", "$")); // false
// 将任何非单词字符与特殊
// 符号和空格进行比较,返回 true,否则返回 false
System.out.println(Pattern.matches("\W", "2")); // false
System.out.println(Pattern.matches("\W", " ")); // true
System.out.println(Pattern.matches("\W", "$")); // true
}
}
输出
true true false false true true
解释
w 表示单词字符,接受字母(大写和小写)和数字 [0-9]。因此,当我们将"w"与字母或数字进行比较时,它返回 true。否则返回 false。
W 表示非单词字符,接受除字母和数字之外的任何字符。因此,当我们将"W"与字母或数字进行比较时,它返回 false。否则返回 true。
单词和非单词元字符 (\b, \B)
示例
// Java 程序演示单词和非单词边界元字符
import java.io.*;
import java.util.regex.*;
class example {
public static void main(String[] args) {
// \b 表示字符串必须有单词字符的边界字母
//
System.out.println(Pattern.matches("\bexample\b", "example")); // true
System.out.println(Pattern.matches("\b@example\b", "@example")); // false
// \B 表示字符串必须有非单词字符作为边界
System.out.println(Pattern.matches("\B@example@\B", "@example@")); //true
System.out.println(Pattern.matches("\Bexample\B", "example")); //false
}
}
输出
true false true false
解释
根据符号 b,字符串必须具有单词字符(例如数字或字母)的边界元素。由于本例中的 GFG 字符串包含单词字母(G、G)的限制,因此返回 true。@GFG 字符串的边界元素是 @、G,其中 @ 不是单词字符,因此返回 false。
B 表示字符串的边界组件必须是非单词字符;允许使用除数字或字母之外的任何内容。由于 @GFG@ 字符串的边界是 @、@ 非单词字符,因此返回 true。GFG 字符串的边界元素是 G 和 G,它们是单词字符并提供 false 结果。
结论
对于寻求检测或操纵文本信息的程序员来说,正则表达式(通常称为 regex)提供了一种有效的解决方案。通过在字符串中定义模式,开发人员可以轻松找到所需的内容,甚至可以修改其外观。 Java Regex 类位于 java.util.regex 包中。在使用 Java Regex 的任何方法之前都需要导入它。Java Regex 包含三个类和一个接口,即 pattern、matcher、PatternSyntaxException 和 MatchResult 接口。
相关文章
有用资源
java 参考教程 - 该教程包含有关 java 的更多信息:https://www.cainiaomax.com/java/

