在正则表达式中允许双字节 space

Allow double-byte space in Regex

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

双字节space如引号“∀”之间的space.

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

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

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

您需要将文字 space 替换为匹配任何水平 Unicode 白色 space 的模式,并且在 .NET 正则表达式中,可以使用 \p{Zs}.[=18 来实现=]

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

参见regex demo

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

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

请注意,您无需在此正则表达式中转义 .-。方括号内的 . 不是任何特殊的正则表达式元字符, - 放在字符 class.

末尾时并不特殊