ReplaceAll regexp匹配所有模式,没有特定的String

bro*_*did 0 java regex string replace

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

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

src="http://xxx...." -> untouched
Run Code Online (Sandbox Code Playgroud)

实际上我替换src="src="file://但是我不想在它开始时替换它http,例如src="http.

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

html2.replaceAll("src=\"","src=\"file://");
Run Code Online (Sandbox Code Playgroud)

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

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

Rog*_*sjö 5

我想你想要一个零宽度的负向前瞻.

html2.replaceAll("(src=\"(?!http://))", "src=\"file:///");
Run Code Online (Sandbox Code Playgroud)

但要注意其他协议,如https,ftp等.