簡體   English   中英

Java Regex替換子字符串

[英]Java Regex to replace Substring

String expression = "${abcd?string(datePattern)}\" href=\"\">From Date</a>&nbsp;-&nbsp;${dasfsaf?string(datePattern)}\" href=\"\">To Date</a>";
expression=expression.replaceAll("(})(\".+</a>)(.+?)", "$1$3");
System.out.println(expression);

即將出現的輸出是:

${abcd?string(datePattern)}&nbsp;-&nbsp;${dasfsaf?string(datePattern)}" href="">To Date</a>

預期的輸出是:

${abcd?string(datePattern)}&nbsp;-&nbsp;${dasfsafT?string(datePattern)}

問題在於,它僅替換第一個{</a>之間的內容,而不替換之后的內容。 我希望在這兩者之間替換所有內容。

在您的正則表達式中,您需要在</a>之后加上(.+?) ,然后將其更改為(.*?) ,它應該可以工作,因為您以后不再需要任何東西,並且您的第二部分可以匹配(或者,它似乎沒有任何作用,所以我只刪除它)。 另外,您可能不希望貪婪的量詞位於.+中間,因此將其更改為lazy .+?

expression=expression.replaceAll("(})(\".+?</a>)", "$1");

不是確切的正則表達式答案,但是您可以重復重復replaceAll調用。 這是我在沒有時間並且不花很多錢的時候要做的。

暫無
暫無

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

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