限制扩展 ASCII 字符集的正则表达式

Mun*_*war 1 regex vb.net validation

我有多语言应用程序,它创建 xml 文件,但扩展 ASCII 字符从 168 到 254 (\xc2\xbf\xe2\x8c\x90\xc2\xac\xc2\xbd\xc2\xbc\xc2\xa1\xc2\xab\xc2 \xbb\xe2\x96\x91\xe2\x96\x93\xe2\x94\x82\xe2\x94\xa4\xe2\x95\xa1\xe2\x95\xa2\xe2\x95\x96\xe2\x95\x95 \xe2\x95\xa3\xe2\x95\x91\xe2\x95\x97\xe2\x95\x9c\xe2\x95\x9b\xe2\x94\x90\xe2\x94\x94\xe2\x94\xb4\xe2 \x94\xac\xe2\x94\x9c) 不应该出现在 XML 标签中,所以我想限制用户输入。

\n\n

我尝试限制除字母数字、下划线和破折号之外的所有内容,但它不允许作为扩展 ASCII 一部分的重音字符 \xc3\xb3 \xc3\xa7 \xc3\xb5 。这是正则表达式"^[a-zA-Z0-9\\s.\\-_]+$"

\n\n

第二个选项是创建一个包含从 168 到 254 的所有符号的字符串,并检查字符串是否包含其中的任何一个,但不确定它是否是可靠且准确的解决方案。

\n\n

过滤扩展 ASCII 字符集输入的最佳方法是什么?

\n\n

扩展 ASCII 字符集表的链接

\n

Roh*_*ain 5

相反,您可以在字符类中使用range,使用它们排除特定范围的字符Hex Codes:-

[^\xA8-\xFE]
Run Code Online (Sandbox Code Playgroud)

上面的正则表达式将匹配除给定范围内的字符之外的任何字符。这些是您发布的范围的十六进制代码 -[168, 254]