мне нужно найти все вхождения «ул» в любом объявлении класса на любой HTML страницы, как это, например:Regular Expression, чтобы найти все вхождения слова в lookaround выражение
class="st0 st1 st2", class="st3 st45", class="st678"
я говорю в пределах потому что в документе могут присутствовать другие «st», и я не хочу менять каждое событие.
Моя конечная цель - найти и заменить. У меня есть логика, написанная для этого, но мне просто нужно выяснить, как изолировать «st» от строки.
Я экспериментировал с несколькими различными выражениями, но я не могу сравниться с каждым случаем. Ниже приведены несколько примеров того, что я пытался.
Это выражение получает все от 'класса = "' и '"':
Регулярное выражение:
(?<=class=").*(?=")
Тест жала: результат
class="st10 st11"
Matching:
"st10 st11"
Вот еще один я попробовал:
Регулярное выражение:
(?<=class=")((st)\d*\s*)*(?=")
Тест жала: результат
class="st10 st11"
Matching:
"st10 st11"
Соответствующие группы:
- ST11
- ул
Я проверял мое регулярное выражение здесь Rubular.com
добавляемые комментарии
я собираюсь использовать регулярное выражение в терминале который я буду запускать в определенной папке. Командная оболочка будет делать поиск и замену на каждый файл, который находится в папке, как это ...
perl -pi -w -e 's/st/stx/g;' ~/Desktop/svg_find_replace/*.svg.
Любая помощь будет оценена.
Это может быть сделано гораздо проще с помощью синтаксического анализатора - если это не вариант [** '\ bst \ d +' **] (https://regex101.com/r/aJ8cU8/1), может быть, что ты ищешь. – Jan
Точно, посмотрите на это: http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags –
Я собираюсь использовать регулярное выражение в пределах которую я буду запускать в определенной папке. Команда оболочки выполнит поиск и замену на каждый файл, находящийся в папке, такой как ... perl -pi -w -e 's/st/stx/g;' ~/Desktop/svg_find_replace/*. SVG. – masahs