2011-12-14 2 views
0

У меня есть строка, и я хочу, чтобы заменить его:ReplaceAll регулярного выражения для совпадения всех моделей, без определенной строки

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/"); 

ответ

5

Я думаю, что вы хотите нулевой шириной отрицательного предпросмотра

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

Но остерегайтесь других протоколов, таких как HTTPS, FTP и т.д.

2

Вы хотите негативный взгляд в будущее. html2.replaceAll ("SRC = \" (?! HTTP)»,, ....

2

Использование регулярных выражений с отрицательным предпросмотром:.

src=\"(?!http://) 
Смежные вопросы