Я хочу сопоставить несколько значений атрибута для замены. например
<div class="div h1 full-width"></div>
Должен производить div, h1 и full-width как отдельные совпадения.
Я хочу сделать это, чтобы префикс классов. Поэтому вместо div h1 full-width это должно быть pre-div pre-h1 pre-full-width
Регулярное выражение, которое у меня есть, это
(?<=class=["'])(\b-?[_a-zA-Z]+[_a-zA-Z0-9-]*\b)+
Это соответствует только первому классу. Это не совсем понятно, потому что это единственное, что должно соответствовать этому шаблону :( Я пытался заставить взгляд за пределы взять больше, чем просто class = ", но я просто заканчиваю тем, что брал все и ничего не оставлял для замены.
Я хочу сделать шаблон, который соответствует любому значению индивидуально между кавычками атрибута класса.
Я хочу сделать это для сценария сборки Ant, который обрабатывает все файлы и заменяет class = "value1 value2 value3" установленным префиксом. Я сделал это без особых проблем с заменой классов в CSS-файлах, но у вас html, кажется, немного сложнее.
Это сборочный скрипт Ant. Java regexp package используется для обработки шаблона. Используется тег ant: replaceregexp
Муравьиная реализация приведенного выше шаблона:
<target name="prefix-class" depends="">
<replaceregexp flags="g">
<regexp pattern="(?<=class=['"])(\b-?[_a-zA-Z]+[_a-zA-Z0-9-]*\b)+"/>
<substitution expression=".${prefix}\1"/>
<fileset dir="${dest}"/>
</replaceregexp>
</target>