[英]Regular Expression Space character not working
我的Regex用於加拿大的郵政編碼,並且只允許使用有效的字母:
Regex pattern = new Regex("^[ABCEGHJKLMNPRSTVXY][0-9][ABCEGHJKLMNPRSTVWXYZ][/s][0-9][ABCEGHJKLMNPRSTVWXYZ][0-9]$");
我遇到的問題是我想允許在每個集合之間放置一個空格,但是找不到要使用的正確字符。
正則表達式(\\ s)中的正斜杠而不是反斜杠。 以下正則表達式應該起作用。
@"^[ABCEGHJKLMNPRSTVXY][0-9][ABCEGHJKLMNPRSTVWXYZ][\s][0-9][ABCEGHJKLMNPRSTVWXYZ][0-9]$"
如果您只是在尋找空間,請使用\\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]$");
根據其他答案...。
\\s
代替/s
[\\s]
放在方括號中,因為它已經暗示了完整的字符類。 也...
"..."
作為正則表達式的定界符,因為這可能是在應用模式之前對\\s
進行插值。 當然值得一試。 \\s*
或\\s?
以允許該空間是可選的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.