我想匹配一个属性的多个值以进行替换。例如
<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="value1 value2 value3" 的 Ant 构建脚本执行此操作。我在替换 css 文件中的类时几乎没有遇到任何麻烦,但你的 html 似乎要复杂得多。
它是一个 Ant 构建脚本。Java regexp 包用于处理模式。使用的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>