我正在尝试在java中编写一个正则表达式,它将验证以下格式 -
XXXXXXXX_YZZZZ
在哪里
X – alphanumeric characters(8 characters)
Y - alpha character
Z - numeric characters
我为第一部分尝试的是 -^[a-zA-Z0-9 ]*$
但我不知道如何去第二部分。
谁能告诉我所需格式的正确正则表达式是什么?
你忘了指定金额和我假设的下划线......
/^[a-z0-9]{8}_[a-z][0-9]{4}$/i
这个怎么样?
^[a-ZA-Z0-9]{8}\_[a-zA-Z][0-9]{4}$
您还可以对结果进行分组:
^([a-ZA-Z0-9]{8})\_([a-zA-Z])([0-9]{4})$
这样您就可以从结果中单独处理 X、Y 和 Z 部分。
试试这个正则表达式:
^[A-Za-z\d]{8}_[A-Za-z]\d{4}$
您的正则表达式匹配零个或多个字母数字字符和/或空格。
这是学习正则表达式的好地方:http ://www.regular-expressions.info
试试这个正则表达式
^[a-zA-Z0-9]{8}[_][a-zA-Z][0-9]{4}$
^[a-zA-Z0-9]{8}_[a-zA-Z][0-9]{4}$
在 Java 中,您可以使用元字符来表达正则表达式:
"8abba778_a2012".matches("^\\w{8}_[a-z]\\d{4}$");
[编辑]:根据@Jon Dvorak,我正在纠正我的答案。实际上,\w 过于大方,也适用于下划线字符_。正确答案 :
"8abba778_a2012".matches("^[a-zA-Z0-9]{8}_[a-z]\\d{4}$");