Java中的正则表达式匹配

时间:2010-06-18 08:03:56

标签: java regex

Java中的正则表达式 我想制作一个这样做的正则表达式 验证一个单词是否像[0-9A-Za-z] [._-'] [0-9A-Za-z] 有效单词的例子

A21a_c32 
daA.da2
das'2
dsada
ASDA
12SA89

无效的单词

dsa#da2
34$

由于

3 个答案:

答案 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})*"

在这个解决方案中,我假设分隔符是可选的,空字符串也是合法的,字符串可以用分隔符开始/结束,或者只由分隔符组成。