【问题标题】:Regex find a word into attribute正则表达式找到一个词成属性
【发布时间】:2014-03-27 20:00:42
【问题描述】:

我有这样一个案例:

<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/>

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

【问题讨论】:

  • 虽然您的具体问题可能可以通过正则表达式解决,但请注意:You can't parse HTML with regex
  • 这个问题没有意义,好吧,这不是一个真正的问题——更多的是一个陈述。当这是唯一的类时,您是否尝试选择具有 form 类的元素? (所以form spec 不匹配)
  • 嗨 SmokeyPHP,对于语法和错误,我很抱歉,我更改了语句的正文!我只需要在引号中找到单词 FORM。
  • 比尔蜥蜴,非常感谢!道歉!

标签: regex regex-lookarounds


【解决方案1】:

要匹配包含form 的类:

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

查看此正则表达式的live demo,它使用环视来断言目标之前和之后的内容。

请注意,第 2 组匹配“form”,而不是整个表达式。这是因为可变长度查找是非法的。您的替换应参考第 1 组和第 3 组将它们放回原处。

【讨论】:

  • 是的,但是我需要找到 form 当还有另一个词时,找到所有 form 到所有类属性中,如果它是“单独的” “...
  • 点击现场演示的链接,告诉我哪些示例无法正常工作。如果您愿意,可以添加更多示例并将新链接作为评论发布在此处。
  • 我已经编辑了答案以匹配课堂上任何地方的表格。第 2 组是你的对手
猜你喜欢
  • 2013-03-16
  • 1970-01-01
  • 1970-01-01
  • 2021-12-30
  • 1970-01-01
  • 1970-01-01
  • 2015-03-24
相关资源
最近更新 更多