特定java正则表达式
如何检查Java中的字符串输入是否具有以下格式: xxxx xxxx xxxx xxxx 其中x是数字0..9特定java正则表达式,java,regex,Java,Regex,如何检查Java中的字符串输入是否具有以下格式: xxxx xxxx xxxx xxxx 其中x是数字0..9 谢谢 Java中的字符串对象有一个方法可以对照正则表达式进行检查: myString.matches("^\\d{4}(-\\d{4}){3}$") 此特定表达式检查四位数字,然后检查三次(连字符和四位数字),从而表示所需的格式。首先,这是一个很好的regexp源:。参观它,拨弄它,四处玩耍。此外,java.util.PatternAPI有一个简洁的正则表达式模式 现在,回到你的问
谢谢 Java中的字符串对象有一个方法可以对照正则表达式进行检查:
myString.matches("^\\d{4}(-\\d{4}){3}$")
此特定表达式检查四位数字,然后检查三次(连字符和四位数字),从而表示所需的格式。首先,这是一个很好的regexp源:。参观它,拨弄它,四处玩耍。此外,
java.util.Pattern
API有一个简洁的正则表达式模式
现在,回到你的问题:你想匹配四个连续的四位数组,用连字符分隔。在正则表达式中,一组4位数字可以表示为
\d{4}
其中由连字符分隔的四个可以表示为:
\d{4}-\d{4}-\d{4}-\d{4}
要使其更短,您还可以表示一组四位数字和三组连续的四位数字,前缀为连字符:
\d{4}(-\d{4}){3}
现在,在Java中,您可以使用它来测试字符串是否与给定的正则表达式匹配
boolean matches = value.matches("\\d{4}(-\\d{4}){3}");
请注意,我用另一个反斜杠将反斜杠转义为
\
,因为反斜杠在字符串中有特殊含义。为了表示实际的反斜杠,您必须使用\\
删除我的答案-我在脑海中读到了“JavaScript”:注意:我再次编辑了它,因为我遗漏了锚。使用锚定版本,而不是没有锚定版本。为什么不能将其简化为:myString.matches((\\d{4}{4}”)@阿米尔:因为您的字符串必须以连字符开头,所以。对错:默认情况下,Java正则表达式是锚定的;)代码>@Balus:Eek!好吧,这对我来说是个新闻。不过,公平地说,到目前为止,我从未在Java中使用过它们。出于好奇:那么,你是如何进行一场未经编排的比赛的呢?Pre-和append*
?它们对String类没有特殊意义。它们对编译器来说有着特殊的意义。天啊,我花了3分钟的时间,已经有了一个公认的答案。不过,努力加1。正因为这个原因,我不再倾向于用琐碎的问题来回答;-)。除了批处理文件之外,我还有希望成为第一个正确、彻底地回答问题的人:-)