我没有正则表达式的经验。我需要一个不允许重复特殊字符的正则表达式(+ - * /&等) 该字符串可以包含数字,字母数字和特殊字符。
这应该是有效的:abc,df
这应该是无效的:abc-,df
如果你能帮助我,我将非常感激!谢谢你的进步。
答案 0 :(得分:2)
[\,\+\-\*\/\&]{2,}
如果需要,可在方括号中添加更多字符
演示https://regex101.com/r/CBrldL/2
答案 1 :(得分:2)
到目前为止提供的两个解决方案匹配不允许的字符串。
但是倾斜是如何防止... ,所以我假设正则表达式 应与允许的字符串匹配。这意味着正则表达式应该:
您可以将以下部分组合在一起:
^
- 字符串锚的开始,(?!.*[...]{2})
- 连续2次特殊的否定前瞻
字符(此处标记为...
),在任何地方,$
- 字符串锚定结束。所以整个正则表达式应该是:
^(?!.*[!@#$%^&*()\-_+={}[\]|\\;:'",<.>\/?]{2}).+$
请注意,在char类([
和]
之间)反斜杠
转义以下字符应放在-
之前(如果在...中)
序列的中间),关闭方括号,
反斜杠本身和/
(正则表达式终止符)。
或者,如果您想将正则表达式应用于单个单词(不是全部 字符串),那么正则表达式应该是:
\b(?!\S*[!@#$%^&*()\-_+={}[\]|\\;:'",<.>\/?]{2})\S+
答案 2 :(得分:0)
使用以下正则表达式匹配无效字符串。
[^A-Za-z0-9]{2,}