使用PHP我想知道我的$string是否包含此列表中从33到255的任何非ASCII扩展字符:http://www.ascii-code.com/
另外,是否可以包括其他各种ASCII字符以拒绝?类似于182和135(相应地带有¶和‡符号).我的意思是,如果$string有这个,我也想得到一个布尔假值.
我知道如何使用ASCII,但不知道如何使用ASCII扩展.
解决方法:
从! ÿ
检查您是否有不在ASCII范围33至255之间的字符非常容易.只需使用此正则表达式:
`[^!-ÿ]`
这是一个否定的字符类,它匹配之间的任何字符!和ÿ.请注意,扩展的ASCII范围取决于计算机的区域设置.它应该为您工作.
也排除¶和‡
为了也排除这些字符,我们可以将最初的否定类分为三个范围,以在两个新字符周围留出空间:from!到ˆ …之前的字符到after …之后的字符到¶…之前的字符.
但是将两个字符添加到它们自己的类中并使用OR来结合起来更为简洁(并且更易于维护).您可以使用此正则表达式:
`[ˆ¶]|[^!-ÿ]`
>如果找到[ˆ¶]中的两个字符之一,则我们有一个匹配项,或者|
>如果字符不在!-ÿ范围内.
要添加排除项,只需继续向第一类添加字符.
标签:php,regex
来源: https://codeday.me/bug/20191029/1959987.html