簡體   English   中英

正則表達式:從匹配的模式中排除字符串

[英]Regex: exclude string from matched pattern

輸入字符串:

hrStorageDescr{hrStorageDescr="devfs: dev file system, mounted on: /.mount/dev"}

正則表達式僅匹配hrStorageDescr的值:

.*hrStorageDescr="(.*?)",.*

如果devfs字符串匹配,如何編寫此正則表達式以保留匹配的 function,但排除值中的所有內容?

您可以匹配bhrStorageDescr前面有一個單詞邊界\b

首先匹配="並斷言直接在右邊的不是devfs后跟使用負前瞻(?!devfs\b)的單詞邊界

如果該斷言成功,則使用否定字符 class 在匹配除"之外的任何字符的組中捕獲並在匹配結束雙引號([^"]+)之前關閉組

使用.*將匹配模式的最后一次出現,使用.*? 將匹配第一個。 如果要匹配所有匹配項,則可以省略該部分,假設您允許匹配所有匹配項而不是單個匹配項。

.*?\bhrStorageDescr="(?!devfs\b)([^"]+)"

正則表達式演示

暫無
暫無

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

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