正则表达式不工作,需要一个良好的正则表达式以下规则:

时间:2014-01-23 16:40:16

标签: java regex validation

a)以下字符对于名字字段是不可接受的。

  • *+值不被接受。
  • 不接受alpha(a-z,A-Z)以外的值。
  • 不允许的符号〜! $%^ * _ +`= {} [] | \:“; < > ? ()& #,/
  • 允许的符号是:
    • 撇号(')
    • 连字符( - )
    • 期间(。))

b)名字不能有“和”这样的模式。例如:“约翰和米勒”

c)名字是必填参数,不能为空或空值。

d)不允许在下一个字符之前没有两个字符的双引号,并且验证失败。

  • 例如:“P”

e)不允许使用一个没有匹配的双引号,但验证失败。

  • 例如:“ABC

2 个答案:

答案 0 :(得分:1)

这是我最接近的,希望它有所帮助:

  

^(?!。* and)([a-zA-Z'.-] *(“[a-zA-Z'.-] {2,}”)* \ s *)* $

虽然可能会被削减。

逃脱它应该是这样的:

"^(?!.* and )([a-zA-Z'.-]*(\"[a-zA-Z'.-]{2,}\")*\\s*)*$"

对于JSF:

“^(?!。* and)([a-zA-Z'.-] (”[a-zA-Z'.-] {2,}“) \ s *)* $“

答案 1 :(得分:0)

我会使用此RegEx验证:^(?!.*\band\b)(?=.*[a-zA-Z])"[a-zA-Z '.-]{2,}"$。它确保在字符串中找不到单词“and”,并且该字符串至少包含一个字母。字符串的长度也不能少于2个字符,并且只能包含字母字符,空格,撇号,句点和连字符。