Regex 正则表达式以允许某些字符并禁用其他一些字符
我必须编写一个正则表达式,它允许字母和数字,但不允许像/和?这样的字符。有人能帮我吗?提前感谢此正则表达式满足您的要求:Regex 正则表达式以允许某些字符并禁用其他一些字符,regex,Regex,我必须编写一个正则表达式,它允许字母和数字,但不允许像/和?这样的字符。有人能帮我吗?提前感谢此正则表达式满足您的要求: ^(?!.*(/|\?))[a-zA-Z0-9]+$ 它仅在仅由字母和/或数字组成的输入上进行匹配,并且它进行负前瞻以确保不存在/或? 要排除更多特殊字符,只需将它们添加到前瞻中,例如,要同时排除@请使用此(?!.*(/?\?\?)(?需要用反斜杠转义\)元字符\w匹配字母数字,表示所有数字、ASCII字母和下划线(). 假设您希望允许的不仅仅是ASCII字母和数字(并
^(?!.*(/|\?))[a-zA-Z0-9]+$
它仅在仅由字母和/或数字组成的输入上进行匹配,并且它进行负前瞻以确保不存在/
或?
要排除更多特殊字符,只需将它们添加到前瞻中,例如,要同时排除
@
请使用此(?!.*(/?\?\?)
(?
需要用反斜杠转义\
)元字符\w
匹配字母数字,表示所有数字、ASCII字母和下划线(
). 假设您希望允许的不仅仅是ASCII字母和数字(并且您的正则表达式风格支持Unicode),您可以使用
^[\p{L}\p{N}]*$
如果列表比允许的字符更清晰,您可以尝试将注意力集中在不允许的字符上:
^[^\?\/\s\(\)]+$
用更多您不喜欢的字符填充[]我不希望阻止所有特殊字符。只是某个数字,比如?和/提到一对。OK-编辑以进行负面前瞻以排除某些特殊字符我测试了此表达式,它确实阻止了所需的字符,但似乎也不允许使用字母数字字符…..我对何时在正则表达式中转义字符感到困惑。例如,在负前瞻中,我希望您需要像转义的
?
@WebUser一样转义/
。斜杠/
在任何类型的正则表达式中都没有特殊意义。然而,有些语言(如JavaScript)使用斜杠来分隔正则表达式(如字符串周围的引号),在这种情况下,您需要像在字符串中转义文字引号一样转义它们,因为这不是正则表达式转义,而是语言文字转义-与正则表达式无关。哪个正则表达式风格?你认为<代码> > <代码>、代码> n> <代码>还是<代码> <代码>是字母和<代码> < <代码>或<代码> <代码>是数字?没有这个澄清,我们无法帮助你(你也无法自己解决这个问题)。