我正在制定一个正则表达式,它将匹配所有字母(包括中文)和一些选定的标点符号(也包括中文)。
这是我的正则表达式
"^[\p{L}\x{FF01}-\x{FF1E}\x{3008}-\x{30A9}0-9\s@#$^&*()+=,.?`~_:;|""-{}[]+$"
抛出十六进制数字不足的异常。有人可以告诉我它有什么问题吗?我在网上尝试了一些正则表达式测试人员,它在那里工作。
我使用c#的Regex类来解析它
答案 0 :(得分:0)
来自docs:
\x nn
使用十六进制表示来指定一个字符(nn恰好包含两个数字)。
我认为你想要的是\u
:
\u nnnn
使用十六进制表示形式匹配Unicode字符(正好是四位数,由nnnn表示)。
试试这个:
@"^[\p{L}\uFF01-\uFF1E\u3008-\u30A90-9\s@#$^&*()+=,.?`~_:;|""-{}[]+$"