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;
这个问题应该能造福很多朋友吧,代表所有初学者感谢参与回答的朋友们
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的能够检测中文姓名的简单方法,下面是我自己尝试的,但是永远返回了假的主要内容,如果未能解决你的问题,请参考以下文章