ReplaceAll正则表达式匹配所有模式,没有特定的字符串

时间:2011-12-14 20:51:46

标签: java regex string replace

我有一个String,我想替换它:

src="test.jpg" -> src="file://test.jpg"

src="http://xxx...." -> untouched

事实上,我将src="替换为src="file://,但如果它以http开头,我不想替换它,例如src="http

所以我写了这个正则表达式,用src="替换src="file://

html2.replaceAll("src=\"","src=\"file://");

但问题是这也匹配src="http。 我不知道如何为此构建正则表达式。我认为我可以这样做,但它不起作用:

html2.replaceAll("src=\"[^(http)]","src=\"file:///android_asset/verkehr/");

3 个答案:

答案 0 :(得分:5)

我认为你想要一个零宽度的负向前瞻。

html2.replaceAll("(src=\"(?!http://))", "src=\"file:///");

但请注意其他协议,如https,ftp等。

答案 1 :(得分:2)

你想要一个消极的期待。     html2.replaceAll( “SRC = \”(?HTTP)” ,, ...

答案 2 :(得分:2)

使用带有负向前瞻的正则表达式:

 src=\"(?!http://)