簡體   English   中英

轉義哈希和引用正則表達式

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM