[英]Java Regex to replace Substring
String expression = "${abcd?string(datePattern)}\" href=\"\">From Date</a> - ${dasfsaf?string(datePattern)}\" href=\"\">To Date</a>";
expression=expression.replaceAll("(})(\".+</a>)(.+?)", "$1$3");
System.out.println(expression);
即將出現的輸出是:
${abcd?string(datePattern)} - ${dasfsaf?string(datePattern)}" href="">To Date</a>
預期的輸出是:
${abcd?string(datePattern)} - ${dasfsafT?string(datePattern)}
問題在於,它僅替換第一個{
和</a>
之間的內容,而不替換之后的內容。 我希望在這兩者之間替換所有內容。
在您的正則表達式中,您需要在</a>
之后加上(.+?)
,然后將其更改為(.*?)
,它應該可以工作,因為您以后不再需要任何東西,並且您的第二部分可以匹配(或者,它似乎沒有任何作用,所以我只刪除它)。 另外,您可能不希望貪婪的量詞位於.+
中間,因此將其更改為lazy .+?
expression=expression.replaceAll("(})(\".+?</a>)", "$1");
不是確切的正則表達式答案,但是您可以重復重復replaceAll調用。 這是我在沒有時間並且不花很多錢的時候要做的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.