簡體   English   中英

將正則表達式限制為單詞邊界

[英]Limit Regex to word boundaries

我有一些文字

"Lorem ipsum dolor sit amet, consectetuer adipiscing elit."

我有一個正則表達式,它是根據用戶輸入生成的。

@".*ip.*"

正如您所期望的,這與整行匹配,因此我用單詞邊界包裝了此表達式。

@"\b.*ip.*\b"

因為處理器是貪婪的,所以它仍然匹配整個文本。 因此,我嘗試使重復變得懶惰。

@"\b.*?ip.*?\b"

更好但是​​匹配

  1. Lorem ipsum
  2. dolor sit amet, consectetuer adipiscing

我該如何擴展原始的@".*ip.*"模式,使其與整個單詞和捕獲詞完全匹配?

  1. ipsum
  2. adipiscing

這個正則表達式測試器可能對於回答問題很有用

為什么不只使用\\w*而不是.*?

@"\w*ip\w*"

這也將匹配_0-9因為它包含在\\w 如果要排除它,可以顯式使用[a-zA-Z]*代替\\w

您已經接近解決方案。 只需用非空格轉義序列\\ S替換點(任何字符):

@"\b\S*?ip\S*?\b"

我認為某些單詞可以包含連字符,因此最好使用模式[\\w-]*ip[\\w-]*

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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