[英]Escaping hash and quote to regular expression
我正在嘗試定義一個與正則表達式驗證器一起使用的正則表達式,以將文本框的內容限制為僅字母數字字符,斜杠(/),哈希(#),左右括號(()),句點(。),撇號('),引號(“),連字符(-)和空格。
我在使用哈希和引號時遇到了麻煩,其他限制仍在起作用,但是當我插入這些字符之一時,評估失敗,並且收到了錯誤消息。 我嘗試不使用逐字轉義來逃避這些字符,這是我最后的嘗試。
@"[ a-zA-ZÀ-ÿ/().\'-""#]"
對這些有什么想法嗎? 謝謝
正則表達式語言很聰明,足以理解字符類中的句點和括號實際上是指字符,而不是指字符出現在字符類之外時通常采用的模式。
在您的角色類中,您需要轉義斜杠( \\
)和連字符( -
),但是僅此而已:
@"[ a-zA-ZÀ-ÿ/().\\'\-""#]"
如果將連字符移動到字符類的末尾,則甚至不需要轉義:
@"[ a-zA-ZÀ-ÿ/().\\'""#-]"
當然,這仍然只匹配一個字符。 如果要確保整個字符串僅包含這些字符,則需要在字符類之后使用start( ^
)和end( $
)錨以及一個量詞( *
或+
)。
我相信您的最終模式應如下所示:
@"^[ a-zA-ZÀ-ÿ/().\\'""#-]*$"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.