[英]Disallow specific special characters in regex
我有以下正则表达式:
[\u00BF-\u1FFF\u2C00-\uD7FF\w \""",.()/-<br\s/?>]+$
它允许使用除#,*
等特殊字符外的任何语言的字符(尽管可以在上面的正则表达式中看到某些特殊字符)。
但是,我的正则表达式也允许不需要的特殊字符,例如<,>,&
。
我应该如何修改此正则表达式以禁止输入字符串中的这些字符?
您需要对某些正则表达式部分使用替换(将<br\\s/?>
/?>视为单独的字符<
, b
等),并且/-<
正在创建一个范围,该范围接受比您想象的更多的字符:
因此,我建议使用
^(?:[\u00BF-\u1FFF\u2C00-\uD7FF\w ",.()/:;-]|"|<br\s?/?>)+$
在C#中,使用逐字字符串文字:
@"^(?:[\u00BF-\u1FFF\u2C00-\uD7FF\w "",.()/:;-]|"|<br\s?/?>)+$"
我假设您需要匹配3个“实体”或它们的组合:
[\¿-\\Ⰰ-\\\w ",.()/-]
-字符的范围\¿-\
和\Ⰰ-\
, \\w
,一个空间,一个双引号, ,
, .
, (
, )
和/
以及文字连字符 "
-文字"
<br\\s?/?>
- <br>
标签(可以匹配<br>
, <br/>
和<br />
)。 ^
和$
将在开头和结尾处强制匹配。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.