正则表达式在属性中找到一个单词

时间:2013-09-19 10:54:36

标签: regex regex-lookarounds

我有这样的案例:

<p class="definitione **form**">Data una grandezza indica la variazione.</p><br/>
<p class="**form**">Due casi molto comuni sono:</p><br/>
<ul><br/>
&nbsp;&nbsp;&nbsp;&nbsp;<li class="**form** placeholder">è il valore iniziale della grandezza.</li><br/>
&nbsp;&nbsp;&nbsp;&nbsp;<li class="definition **form** placeholder">è il valore di in un secondo punto.</li><br/>
</ul><br/>
<p id="form">Se la grandezza aumenta, la variazione è positiva</p><br/><br/>

我需要找到(并替换)表单字(而不是另一个字)到属性类。

试试这个正则表达式:

(?<=class=")form(?=")

仅选择:

<p class="definitione form">Data una grandezza indica la variazione.</p><br/>
<p class="**form**">Due casi molto comuni sono:</p><br/>
<ul><br/>
&nbsp;&nbsp;&nbsp;&nbsp;<li class="form placeholder">è il valore iniziale della grandezza.</li><br/>
&nbsp;&nbsp;&nbsp;&nbsp;<li class="definition form placeholder">è il valore di in un secondo punto.</li><br/>
</ul><br/>
<p id="form">Se la grandezza aumenta, la variazione è positiva</p><br/><br/>

但我需要在所有类属性中选择所有表单

1 个答案:

答案 0 :(得分:1)

要匹配其中包含form的课程:

(class="[^"]*)(form)([^"]*")

请参阅此正则表达式的live demo,该正则表达式使用环顾四言来断言目标之前和之后的内容。

请注意,第2组匹配“表单”,而不是整个表达式。这是因为可变长度的外观是非法的。您的更换应参考第1组和第3组将它们放回去。