在正则表达式中允许双字节 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.
末尾时并不特殊
我的 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.