Java中的正则表达式 我想制作一个这样做的正则表达式 验证一个单词是否像[0-9A-Za-z] [._-'] [0-9A-Za-z] 有效单词的例子
A21a_c32
daA.da2
das'2
dsada
ASDA
12SA89
无效的单词
dsa#da2
34$
由于
答案 0 :(得分:2)
^[0-9A-Za-z]+[._'-]?[0-9A-Za-z]+$
(see matches on rubular.com)
关键点:
^
是字符串锚$
是字符串锚+
是“一次或多次重复”?
是“零或一次重复”(即“可选”)-
是特殊的(范围定义)...
.
在字符类定义之外未转义是特殊的......
答案 1 :(得分:1)
如果[._'-]
是可选的,请将?
与放在下一个字符中,如下所示:
[0-9A-Za-z]+([._'-][0-9A-Za-z]+)?
答案 2 :(得分:1)
"(\\p{Alnum})*([.'_-])?(\\p{Alnum})*"
在这个解决方案中,我假设分隔符是可选的,空字符串也是合法的,字符串可以用分隔符开始/结束,或者只由分隔符组成。