Java ReplaceAll regexp以匹配所有模式,无需特定字符串
我有一个字符串,我想替换它:Java ReplaceAll regexp以匹配所有模式,无需特定字符串,java,regex,string,replace,Java,Regex,String,Replace,我有一个字符串,我想替换它: src="test.jpg" -> src="file://test.jpg" src="http://xxx...." -> untouched 事实上,我将src=替换为src=file://但如果它以http开头,例如src=http,我不想替换它 所以我编写了这个regexp来用src=file://: 但问题是,这也与src=http匹配。 我不知道如何为此构建regexp。我原以为我能做到这一点,但它不起作用: html2.replace
src="test.jpg" -> src="file://test.jpg"
src="http://xxx...." -> untouched
事实上,我将src=替换为src=file://但如果它以http开头,例如src=http,我不想替换它
所以我编写了这个regexp来用src=file://:
但问题是,这也与src=http匹配。
我不知道如何为此构建regexp。我原以为我能做到这一点,但它不起作用:
html2.replaceAll("src=\"[^(http)]","src=\"file:///android_asset/verkehr/");
你想要一个消极的展望。
html2.replaceAllsrc=\?!http,,…使用带有负前瞻的正则表达式:
src=\"(?!http://)
我想你需要一个零宽度的负前瞻
html2.replaceAll("(src=\"(?!http://))", "src=\"file:///");
但要注意其他协议,如https、ftp等
html2.replaceAll("(src=\"(?!http://))", "src=\"file:///");