使用Regular Expression查找带内联样式的span标记

时间:2013-05-15 13:22:32

标签: asp.net regex html inline-styles

我需要一些帮助来编写一个正则表达式,如果它有内联样式,可以找到一个span标记。

到目前为止我已经有了 style = [\“'] [^ \”'] [\“'] * | /)?>它确实找到了带内联样式的span标签。 它只有在内联样式中才能检测到span标记,而不是匹配的结束span标记 请参阅屏幕截图,其中显示了示例文本enter image description here

中检测到的内容

正如您可以看到截图,它检测到的第一件事是我不想要的。我想只在span标记中存在内联样式及其相应的结束标记时才能工作。

有人可以帮我解决一下我需要做出哪些改变才能得到我想要的东西吗?

这里的想法是我试图在标签中存在内联样式时删除标签但是如果有一个带有类的span标签那么它就没问题了。

1 个答案:

答案 0 :(得分:2)

肥皂盒

我们可以制作一个正则表达式以匹配您的特定情况,但鉴于这是HTML解析,可能会有任何数量的边缘情况,而正则表达式无法获取。您最好使用DOM或使用HTML Agility (free)

之类的产品

然而

如果您基本需要捕捉比赛,那么您可以尝试:

((<span\b[^>]*\s\bstyle=(["'])([^"]*)\3[^>]*>)(.*?)</span>)

我正在填写以下群组:

  1. 从开始到结束标记
  2. 获取整个字符串
  3. 获取整个开放标记
  4. 获取样式值的开放单/双引号。这在正则表达式之外可能没用,但我正在使用它确保我在Ref 1的值字符串末尾捕获正确的结束qoute。
  5. 获取样式键/值集
  6. 中找到的值
  7. 获取span标记内的所有字符。
  8. 请注意,如果存在嵌套的span标记,则会中断。 enter image description here

    enter image description here