Java 正则校验中文
正则表达式在 Java 中被广泛用于字符串的匹配和校验。在实际开发中,常常需要对中文进行校验。本文将介绍如何使用 Java 正则表达式校验中文,并提供代码示例来帮助理解。
什么是正则表达式?
正则表达式是一种用于匹配字符串的模式。它由普通字符(如字母、数字)和特殊字符(如元字符和限定符)组成。正则表达式可以用来验证字符串是否符合某种模式、搜索和替换字符串等。
如何校验中文?
要校验中文,我们需要使用 Unicode 编码范围来定义中文字符。在 Unicode 编码中,中文的范围为 \u4E00-\u9FA5
。我们可以使用 Java 正则表达式的范围匹配来校验中文字符。
下面是一个示例代码,演示了如何使用正则表达式校验中文姓名:
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class ChineseValidation {
public static void main(String[] args) {
String name = "张三";
String regex = "[\u4E00-\u9FA5]{2,4}"; // 匹配2-4个中文字符
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(name);
if (matcher.matches()) {
System.out.println("姓名校验通过");
} else {
System.out.println("姓名不合法");
}
}
}
在上面的示例中,我们使用了 Pattern
类和 Matcher
类来进行正则表达式的匹配。首先,我们定义了一个中文姓名的正则表达式 [\\u4E00-\\u9FA5]{2,4}
,用于匹配2-4个中文字符。然后,我们使用 Pattern.compile()
方法将正则表达式编译成一个 Pattern
对象。接下来,我们使用 Matcher
对象的 matches()
方法进行匹配,并根据匹配结果输出相应的信息。
使用正则表达式校验其他中文信息
除了校验中文姓名,我们还可以使用正则表达式来校验其他中文信息,例如中文手机号、中文地址等。下面是一些常见的中文信息校验示例代码:
校验中文手机号
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class ChinesePhoneValidation {
public static void main(String[] args) {
String phone = "13812345678";
String regex = "^1[3456789]\\d{9}$"; // 匹配中国手机号
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(phone);
if (matcher.matches()) {
System.out.println("手机号校验通过");
} else {
System.out.println("手机号不合法");
}
}
}
校验中文地址
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class ChineseAddressValidation {
public static void main(String[] args) {
String address = "北京市朝阳区";
String regex = "[\u4E00-\u9FA5]+市[\u4E00-\u9FA5]+区"; // 匹配中国地址
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(address);
if (matcher.matches()) {
System.out.println("地址校验通过");
} else {
System.out.println("地址不合法");
}
}
}
总结
本文介绍了如何使用 Java 正则表达式校验中文。我们使用 Unicode 编码范围定义了中文字符,并使用正则表达式的范围匹配进行校验。通过示例代码,我们演示了如何校验中文姓名、中文手机号和中文地址。希望本文能够帮助你理解和应用正则表达式校验中文。