java正则表达式,我想要一个java的能够检测中文姓名的简单方法,下面是我自己尝试的,但是永远返回了假

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java正则表达式,我想要一个java的能够检测中文姓名的简单方法,下面是我自己尝试的,但是永远返回了假相关的知识,希望对你有一定的参考价值。

static boolean ChineseNameTest(String name)
if (!name.matches("[u4e00-u9fa5]2,4"))
System.out.println("只能输入2到4个汉字");
return false;
else return true;

这个问题应该能造福很多朋友吧,代表所有初学者感谢参与回答的朋友们

static boolean ChineseNameTest(String name)
if (!name.matches("[\u4e00-\u9fa5]2,4"))
System.out.println("只能输入2到4个汉字");
return false;
else return true;


希望对你有帮助
参考技术A 加条斜杠就可以了
static boolean ChineseNameTest(String name)
if (!name.matches("[u4E00-\u9FA5]2,4"))
System.out.println("只能输入2到4个汉字");
return false;
else return true;
参考技术B ^[\u4e00-\u9fa5]2,4$ 参考技术C 楼上几位说的不错 就是忘了因为\在java中也是转义符 所以需要\\才行

可以在 Java 的正则表达式量词中传递引用吗?

【中文标题】可以在 Java 的正则表达式量词中传递引用吗?【英文标题】:It is possible to pass a reference in a regex quantifier in Java? 【发布时间】:2016-03-23 17:02:34 【问题描述】:

我有一个编程练习,我们必须编写一个格式化方法,它将一个字符串作为参数,作为我们想要格式化的文本输入,一个整数作为我们想要的行的长度。

我们也有特定的规则,其中之一是:如果一个词比期望的长度长,它应该单独排成一行。

因此,一种简单的方法是使用正则表达式搜索一系列至少为 length 并且可能更多的非空白字符,并将其自身匹配的替换为两个 \ n 在每一边...

也许代码更清晰:假设我们想要的行长是 10

  String s = line.replaceAll("([ \t])(\\S10,)([ \t])", "\n$2\n");
  System.out.println(s);

这实际上工作正常。

我的问题是行长应该作为参数传递给format方法;所以我可以引用这个参数的唯一方法是使用它的引用。例如:

public static String format(String s, int length) ...

//缺少的东西

String s = line.replaceAll("([ \t])(\S长度,)([ \t])", "\n$2\n"); System.out.println(s);

但是在这种情况下它会返回一个错误:PatternSyntaxException

我的问题是:有没有办法使用对量词(而不是数字)的引用作为我们想要匹配的出现次数的参数?看起来它真的很有用,我很惊讶它似乎没有用。此外,看起来很多人都没有遇到过这个问题。

【问题讨论】:

【参考方案1】:

试试这个

String s = line.replaceAll("([ \t])(\S"+length+",)([ \t])", "\n$2\n");
System.out.println(s);

【讨论】:

以上是关于java正则表达式,我想要一个java的能够检测中文姓名的简单方法,下面是我自己尝试的,但是永远返回了假的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Java 中构建正则表达式来检测字符串的空格或结尾?

用java正则表达式检测字符串中是不是含有某字符

JAVA正则表达式

正则表达式检测代码中的注释[重复]

java电子邮件提取正则表达式?

可以在 Java 的正则表达式量词中传递引用吗?