Найти/заменить регулярное выражение для удаления тегов html

Используя find и replace, какое регулярное выражение удалит теги, окружающие что-то вроде этого:

<option value="863">Viticulture and Enology</option>

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

Я все еще пытаюсь учиться, но я не могу заставить его работать.

Я не использую его для анализа HTML, у меня есть данные с одного из наших веб-сайтов компании, которые нам нужны в excel, но наш дизайнер удалил исходный файл данных, и нам это нужно. У меня есть список параметров и вам нужно удалить теги HTML, используя Notepad ++, чтобы найти и заменить

Ответы

Ответ 1

Это работает для меня Notepad ++ 5.8.6 (UNICODE)

поиск: <option value="\d+">(.*)</option>

заменить: \1

Ответ 2

Я сделал, используя следующее регулярное выражение:

Найти это: <.*?>|</.*?>

и

заменить на: \r\n (это для новой строки)

Используя это регулярное выражение (<.*?>|</.*?>), мы можем легко найти значение между тегами HTML, как показано ниже:

введите описание изображения здесь

У меня есть вход:

<otpion value="123">1</option><otpion value="1234">2</option><otpion value="1235">3</option><otpion value="1236">4</option><otpion value="1237">5</option> 

Мне нужно найти значения между опциями, такими как 1,2,3,4,5

введите описание изображения здесь

и попал ниже вывода:

введите описание изображения здесь

Ответ 3

Это отлично работает для меня:

  • Выберите "Регулярное выражение" в режиме "Найти".
  • Введите [<]. *? > в поле "Найти" и оставьте поле "Заменить с" пустым.
  • Обратите внимание, что вам нужно иметь версию 5.9 Notepad ++ для? оператора для работы.

как показано здесь: digoCOdigo - strip html tags в блокноте ++

Ответ 4

Что-то вроде этого будет работать (пока вы знаете, формат HTML не изменится):

<option value="(\d+)">(.+)</option>

Ответ 5

String s = "<option value=\"863\">Viticulture and Enology</option>";
s.replaceAll ("(<option value=\"[0-9]+\">)([^<]+)</option>", "$2")
res1: java.lang.String = Viticulture and Enology

(Протестировано с помощью scala, поэтому res1:)

С sed вы будете использовать немного другой синтаксис:

echo '<option value="863">Viticulture and Enology</option>'|sed -re 's|(<option value="[0-9]+">)([^<]+)</option>|\2|'

Для notepad ++ я не знаю деталей, но "[0-9] +" должен означать "хотя бы одну цифру", "[^ <]", но ничего, кроме открытия, меньше, чем несколько раз. Маскировка и обратные ссылки могут отличаться. Регулярные выражения проблематичны, если они охватывают несколько строк или скрыты комментарием, регулярное выражение не распознает его.

Однако, много html genereated в дружественном регулярном выражении, всегда вписываясь в строку и никогда не комментируя. Или вы используете его в метаданных, и можете проверить свой вход раньше.