Java Regex如何防止重复使用特殊字符?

Java Regex如何防止重复使用特殊字符?,java,c#,regex,pcre,regular-language,Java,C#,Regex,Pcre,Regular Language,我对正则表达式没有经验。我需要一个正则表达式,它不允许重复特殊字符(+-*/&等) 字符串可以包含数字、字母数字和特殊字符 这应该是有效的:abc,df 这应该是无效的:abc-,df 如果你能帮助我,我将不胜感激!感谢提前通知。[\,\+-\*\/\&]{2,}如果需要,在方括号中添加更多字符。 演示[\,\+-\*\/\&]{2,}如果需要,在方括号中添加更多字符。 演示使用以下正则表达式匹配无效字符串 [^A-Za-z0-9]{2,} 使用以下正则表达式匹配无效字符串 [^A-Za-z0

我对正则表达式没有经验。我需要一个正则表达式,它不允许重复特殊字符(+-*/&等) 字符串可以包含数字、字母数字和特殊字符

这应该是有效的:abc,df

这应该是无效的:abc-,df


如果你能帮助我,我将不胜感激!感谢提前通知。

[\,\+-\*\/\&]{2,}
如果需要,在方括号中添加更多字符。

演示

[\,\+-\*\/\&]{2,}
如果需要,在方括号中添加更多字符。

演示

使用以下正则表达式匹配无效字符串

[^A-Za-z0-9]{2,}

使用以下正则表达式匹配无效字符串

[^A-Za-z0-9]{2,}

到目前为止,提供的两个解决方案与不允许的字符串匹配

但是倾斜是如何防止…,所以我假设正则表达式 应匹配允许的字符串。这意味着正则表达式应:

  • 如果字符串不包含2,则匹配整个字符串 连续的特殊字符
  • 否则不匹配
您可以通过将以下部分组合在一起来实现这一点:

  • ^
    -开始串锚
  • (?!.[…]{2})
    -连续两次特殊事件的负前瞻 字符(此处标记为
    ),在任何位置
  • 匹配整个(非空)字符串的正则表达式
  • $
    -字符串结束锚定
因此,整个正则表达式应该是:

^(?!.*[!@#$%^&*()\-_+={}[\]|\\;:'",<.>\/?]{2}).+$
\b(?!\S*[!@#$%^&*()\-_+={}[\]|\\;:'",<.>\/?]{2})\S+

到目前为止,提供的两个解决方案与不允许的字符串匹配

但是倾斜是如何防止…,所以我假设正则表达式 应匹配允许的字符串。这意味着正则表达式应:

  • 如果字符串不包含2,则匹配整个字符串 连续的特殊字符
  • 否则不匹配
您可以通过将以下部分组合在一起来实现这一点:

  • ^
    -开始串锚
  • (?!.[…]{2})
    -连续两次特殊事件的负前瞻 字符(此处标记为
    ),在任何位置
  • 匹配整个(非空)字符串的正则表达式
  • $
    -字符串结束锚定
因此,整个正则表达式应该是:

^(?!.*[!@#$%^&*()\-_+={}[\]|\\;:'",<.>\/?]{2}).+$
\b(?!\S*[!@#$%^&*()\-_+={}[\]|\\;:'",<.>\/?]{2})\S+

你还认为什么是特殊的性格?代码> -< /代码>和<代码>,对我来说同样是“特殊的”,你认为什么是特殊字符?code>-和
对我来说同样是“特别的”它工作得很好,你救了我一天。非常感谢,谢谢!很好,你救了我一天。非常感谢,谢谢!很好,很简单。谢谢,简单一点。谢谢