正则表达式允许某些字符并禁用其他一些字符

时间:2011-09-13 06:05:30

标签: regex

我必须编写一个允许字母和数字的正则表达式,但不允许使用像/和?这样的字符。 。有人可以帮我解决这个问题吗?提前致谢

4 个答案:

答案 0 :(得分:1)

这个正则表达式符合您的要求:

^(?!.*(/|\?))[a-zA-Z0-9]+$

它仅仅匹配仅由字母和/或数字组成的输入,而且它会做出否定的预测,以确保不存在/?

要排除更多特殊字符,只需将其添加到预览中,例如同时排除@使用此(?!.*(/|\?|@))?需要转义用反斜杠\

答案 1 :(得分:1)

假设您不仅允许使用ASCII字母和数字(并且您的正则表达式支持Unicode),您可以使用

^[\p{L}\p{N}]*$

答案 2 :(得分:0)

元字符\w匹配字母数字,表示所有数字,ASCII字母和下划线(_)。

答案 3 :(得分:0)

如果该列表比允许列表更清晰,您可以尝试专注于您不想要允许的字符:

^[^\?\/\s\(\)]+$

使用您不喜欢的更多字符填充[]