我要替換查詢字符串值在Java中的查詢字符串的屬性值,但它創造了一些問題:替換使用正則表達式
問題1:其替換
String queryString = "?pid=1&name=Dell&cid=25";
String nQueryString=queryString.replaceAll("(?<=[?&;])pid=.*?($|[&;])","pid=23");
System.out.println(nQueryString);
輸出後取出「&」符號以上示例 ?pid=23name=Dell&cid=25
您可以看到其中刪除了「&「後pid
問題2:它不工作,如果我刪除了」?「來自queryString
變量的符號。上面的例子中的
String queryString = "pid=1&name=Dell&cid=25";
String nQueryString=queryString.replaceAll("(?<=[?&;])pid=.*?($|[&;])","pid=23");
System.out.println(nQueryString);
輸出 ?pid=1&name=Dell&cid=25
我們可以說,正則表達式是行不通的,所以任何人都可以建議我更好的正則表達式這完全符合我的要求。
是@Steve你是對的,但當我試圖用空格替換相同的查詢字符串時,它不刪除「&」符號。 'queryString.replaceAll(「(?<= [?&;])pid = [^&] *」,「」)'會給 '?&name = Dell&cid = 25' – user2518430
@ user2518430你說你想保留它... –
哦,是的,我只是想替換queryString值,但我只是試圖替換屬性。如果相同的正則表達式適用於我,我會更好,這就是我嘗試和評論的原因。謝謝@Steve,你的回答對我來說非常有用。 – user2518430