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