2

我的 C# 代码上有一个正则表达式来检查最终用户输入的名称是否有效,我的正则表达式拒绝双字节字符,如双字节空间。

双字节空格,如引号“”之间的空格。

我的正则表达式:@"^[\p{L}\p{M}\p{N}' \.\-]+$"

我已经尝试编辑此正则表达式以接受双字节空间,但我没有达到有意义的结果。

因此,如果有人可以编辑此正则表达式以接受双字节空间,我将不胜感激。

4

1 回答 1

2

您需要将文字空间替换为与任何水平 Unicode 空白匹配的模式,在 .NET 正则表达式中,可以使用\p{Zs}.

@"^[\p{L}\p{M}\p{N}\p{Zs}'.-]+$"

请参阅正则表达式演示

请注意,此模式与 TAB 字符不匹配。如果你也需要匹配一个TAB,你只需要添加它,

@"^[\p{L}\p{M}\p{N}\p{Zs}\t'.-]+$"

.请注意,您不需要-在此正则表达式中转义。.方括号内不是任何特殊的正则表达式元字符,并且-在放置在字符类的末尾时并不特殊。

于 2021-03-11T14:40:26.927 回答