我的正则表达式是加拿大邮政编码,只允许有效的字母:
Regex pattern = new Regex("^[ABCEGHJKLMNPRSTVXY][0-9][ABCEGHJKLMNPRSTVWXYZ][/s][0-9][ABCEGHJKLMNPRSTVWXYZ][0-9]$");
我遇到的问题是我想允许在每个集合之间放置一个空格但是找不到正确的字符来使用。
答案 0 :(得分:1)
你的正则表达式中有空格(\ s)的正斜杠而不是反斜杠。以下正则表达式应该可以工作。
@"^[ABCEGHJKLMNPRSTVXY][0-9][ABCEGHJKLMNPRSTVWXYZ][\s][0-9][ABCEGHJKLMNPRSTVWXYZ][0-9]$"
答案 1 :(得分:1)
如果您只是在搜索空间使用\s
在给定示例中提供转义序列字符\
使用@
verbitm文字字符,如下所示。
Regex pattern = new Regex(@"^[ABCEGHJKLMNPRSTVXY][0-9]\s[ABCEGHJKLMNPRSTVWXYZ[0-9]\s[ABCEGHJKLMNPRSTVWXYZ][0-9]$");
正如评论中所指出的,如果空格是可选的,您可以使用?
量词,如下所示。
Regex pattern = new Regex(@"^[ABCEGHJKLMNPRSTVXY][0-9]\s?[ABCEGHJKLMNPRSTVWXYZ[0-9]\s?[ABCEGHJKLMNPRSTVWXYZ][0-9]$");
答案 2 :(得分:0)
答案 3 :(得分:0)
根据其他答案....
\s
代替/s
[\s]
括起来,因为它已经暗示了一个完整的角色类。
也...
"..."
作为正则表达式的分隔符,因为这可能是在应用模式之前插入\s
。这当然值得一试。\s*
或\s?
来允许空格是可选的。