Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 正则表达式以允许某些字符并禁用其他一些字符_Regex - Fatal编程技术网

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> <代码>还是<代码> <代码>是字母和<代码> < <代码>或<代码> <代码>是数字?没有这个澄清,我们无法帮助你(你也无法自己解决这个问题)。