簡體   English   中英

正則表達式選擇子字符串

[英]Regular Expression to select substring

我有輸入字符串

DISPLAY_MSG='Kumar + sajdhjhasd - Type' 
              and  ID=156090 
              and RESOURCE_KEY='Ascend.ElementMaster.kumar_type.desc' 
              and  LOCALE='en_US'

我只想匹配DISPLAY_MSG='Kumar + sajdhjhasd - Type'但使用此表達式

DISPLAY_MSG='[\\w\\W\\s\\S]*

匹配整個字符串。 我如何在之后的兩個單一代碼之間僅選擇字符串

DISPLAY_MSG=

這個正則表達式很荒謬。

[\\w\\W\\s\\S]意思是:如果字符是字母數字或非字母數字或空格或非空格,則匹配該字符。 可以通過(?s).獲得完全相同的結果(?s).

僅在JavaScript中(其中不允許點匹配換行符的(?s)選項不可用,而是寫[\\s\\S]才有意義。但是[\\w\\W\\s\\S]絕對是過大的。

因此,使用懶惰量詞的更好解決方案是

DISPLAY_MSG='(?s).*?'

但更重要的是實際指定哪些是允許的引號之間,這通常是什么,但報價:

DISPLAY_MSG='[^']*'

您應該嘗試使用非貪婪量詞將匹配項減少到最小可能的長度。

正則表達式:最小匹配或不匹配

以下是一個很好的示例http://www.exampledepot.com/egs/java.util.regex/greedy.html

您應該使用貪婪的量詞。 嘗試這個:

DISPLAY_MSG='[\\w\\W\\s\\S]*?'

暫無
暫無

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

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