我有一个字符串
String customHtml = "<html><body><iframe src=https://zarabol.rediff.com/widget/end-of-cold-war-salman-hugs-abhishek-bachchan?search=true&header=true id=rediff_zarabol_widget name=rediff_zarabol_widget scrolling=auto transparency= frameborder=0 height=500 width=100%></iframe></body></html>";
我需要用另一个字符串替换weburl的最后一个索引。在上面的示例中,替换
end-of-cold-war-salman-hugs-abhishek-bachchan
与
srk-confesses-found-gauri-to-be-physically-attractive
我尝试使用Lazy /begin.*?end/
但它失败了。
任何帮助将受到高度赞赏。
提前致谢。
答案 0 :(得分:2)
正则表达式:
(?<=\/)[^\/]*(?=\?)
Java正则表达式:
(?<=/)[^/]*(?=\\?)
替换字符串:
srk-confesses-found-gauri-to-be-physically-attractive
Java代码将是,
String url= "<html><body><iframe src=https://zarabol.rediff.com/widget/end-of-cold-war-salman-hugs-abhishek-bachchan?search=true&header=true id=rediff_zarabol_widget name=rediff_zarabol_widget scrolling=auto transparency= frameborder=0 height=500 width=100%></iframe></body></html>";
String m1 = url.replaceAll("(?<=\\/)[^\\/]*(?=\\?)", "srk-confesses-found-gauri-to-be-physically-attractive");
System.out.println(m1);
答案 1 :(得分:1)
这应该这样做:
url = url.replaceAll("(?<=/)[^/?]+(?=\\?)", "your new text");
答案 2 :(得分:0)
正则表达式: [^ /] *?(?:?\)
您必须删除&#34; /&#34;来自正则表达式。
答案 3 :(得分:0)
正如其他人所说,DOM解析器会更好。完成后,这是一个适用于您输入的正则表达式解决方案:
String replaced = yourString.replaceAll("(https://\\S+/)[^?]+",
"$1srk-confesses-found-gauri-to-be-physically-attractive");
<强>解释强>
(https://\\S+/)
向第1组捕获文字https://
,任何不是空格\S+
的字符,以及正斜杠/
[^?]+
匹配任何非?
的字符(要替换的文字)$1
第1组(未更改)和您指定的文本