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