gpt4 book ai didi

java - 在 Java 中使用 RegEx 验证名字和姓氏

转载 作者:搜寻专家 更新时间:2023-11-01 01:50:18 24 4
gpt4 key购买 nike

我正在尝试验证包含一个人的名字和姓氏的 String。可接受的名称格式如下。

Bruce Schneier                  
Schneier, Bruce
Schneier, Bruce Wayne
O’Malley, John F.
John O’Malley-Smith
Cher

我想出了以下程序来验证 String 变量。 validateName 函数应该返回 true 如果名称格式匹配任何提到的格式。否则它应该返回 false

import java.util.regex.*;

public class telephone {

public static boolean validateName (String txt){
String regx = "^[\\\\p{L} .'-]+$";
Pattern pattern = Pattern.compile(regx, Pattern.CASE_INSENSITIVE);
Matcher matcher = pattern.matcher(txt);
return matcher.find();

}

public static void main(String args[]) {

String name = "Ron O’’Henry";

System.out.println(validateName(name));

}
}

但出于某种原因,它会为任何值返回 false。我在这里做错了什么?

最佳答案

使用这个:

^[\p{L}\s.’\-,]+$

演示: https://regex101.com/r/dQ8fK8/1

说明:

  1. 您遇到的最大问题是'' 不同。您只能通过从文本中复制粘贴来实现该字符。
  2. [] 中使用 \- 而不是 - 因为它会被误认为是一个范围。例如:[a-z]
  3. 您可以使用 \s 而不是 来匹配任何空格。

关于java - 在 Java 中使用 RegEx 验证名字和姓氏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36831572/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com