我必须编写一个允许字母和数字的正则表达式,但不允许使用像/和?这样的字符。 。有人可以帮我解决这个问题吗?提前致谢
答案 0 :(得分:1)
这个正则表达式符合您的要求:
^(?!.*(/|\?))[a-zA-Z0-9]+$
它仅仅匹配仅由字母和/或数字组成的输入,而且它会做出否定的预测,以确保不存在/
或?
。
要排除更多特殊字符,只需将其添加到预览中,例如同时排除@
使用此(?!.*(/|\?|@))
(?
需要转义用反斜杠\
)
答案 1 :(得分:1)
假设您不仅允许使用ASCII字母和数字(并且您的正则表达式支持Unicode),您可以使用
^[\p{L}\p{N}]*$
答案 2 :(得分:0)
元字符\w
匹配字母数字,表示所有数字,ASCII字母和下划线(_
)。
答案 3 :(得分:0)
如果该列表比允许列表更清晰,您可以尝试专注于您不想要允许的字符:
^[^\?\/\s\(\)]+$
使用您不喜欢的更多字符填充[]