2013-09-25 1 views
0

Текст:регулярное выражение заменить поверочного элемент с его содержимым

god is a <span class="linkText0" name="name1">good</span> god my <span class="linkText1" name="name2">friend</span> 

Ожидаемое (удалить <span>..</span> учитывая name спички)

god is a good god my <span class="linkText1" name="name2">friend</span> 

Мой Regex:

/<span[^]+name=\"name2\">([^]+)</span>/g 

Результаты:

god is a friend 

http://regexr.com?36fbh

Пожалуйста, помогите исправить

+3

Пожалуйста, не используйте регулярное выражение для анализа (или манипулирования) HTML.

не может удерживаться. Зальго - Тони Пони, он приходит! http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags/1732454#1732454 –

+0

Ваше регулярное выражение и ваше ожидание не совпадают ... Ваше ожидание удаляет пробел с именем «name1», но ваше регулярное выражение ищет «имя2». Если вы ищете «имя1»: http://regexr.com?36fbk ** BUT ** снова, вы не должны использовать RegExp для управления HTML. – Passerby

+0

Это должно быть '/ ] + name = \" name2 \ "> ([^ <>] +)/g' ... ** ПРЕДУПРЕЖДЕНИЕ ** Не несет ответственности за любые повреждения, вызванные использованием регулярных выражений для разбора html – Anirudha

ответ

0

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

/<span[^<>]+name=\"name2\">([^<>]+)</span>/g 

[^<>] соответствовал бы ничего, кроме < или >

Хотя вы должны использовать HTML-парсер.

Смежные вопросы