Замените все регулярные выражения, чтобы соответствовать всем шаблонам, без конкретной строки - PullRequest
0 голосов
/ 15 декабря 2011

У меня есть строка, и я хочу заменить ее:

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 ]

5 голосов
/ 15 декабря 2011

Думаю, вам нужен отрицательный взгляд нулевой ширины.

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

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

2 голосов
/ 15 декабря 2011

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

 src=\"(?!http://)
2 голосов
/ 15 декабря 2011

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...