我有一個請求查詢字符串,其中包含參數名稱&
(&name
),因爲在請求查詢字符串中,參數也用&
分隔,則變量名稱爲&&name
。我寫的正則表達式這是應返回的參數值正則表達式與Java中的非空白字符匹配
Matcher matcher = Pattern.compile("&(&[^=]+)=([^&]*)").matcher(str);
while (matcher.find()) {
String value = matcher.group(2);
System.out.println(value);
}
所以正則表達式工作正常時請求字符串具有以下結構:
String str = "&&NAME=name 1&&NAME=name 2&type=1";
輸出是:
name 1
name 2
但是當字符串有以下結構
String str = "&&NAME=name 1&&NAME=name & 2&type=1";
輸出是:
name 1
name
我嘗試這樣做:
&(&[^=]+)=([^\\S&\\S]*)
\\S
非空白匹配,但也沒有工作。我該如何解決它?
我有一個公正的查詢字符串。我試過你的正則表達式,但它不工作,因爲我想要的。我用你的替換第二組:&(&[^ =] +)=(。*?)(?= && | $),但輸出爲名稱1和名稱&2&type = 1 – Lusi
我添加了一個答案, 。 –