正则表达式:通用标签剥离器?

时间:2014-04-06 01:54:26

标签: regex

我的问题可能已在其他讨论中被提及并回答 - 我一直在浏览,但我还没有找到确切的答案。

我需要使用Dreamweaver,TextWrangler或类似的程序对大量文件执行一些搜索和替换操作。 (顺便说一下,我正在使用Mac。)我的直接目标是找到一个正则表达式来消除这个......

<span class="pfirst">

以及以下结束标记......

</span>

但保留介于两者之间的一切。因此,这...

<span class="pfirst">We won!</span>

将转换为:

We won!

但是我也想知道是否有人在一起制作了一个通用的正则表达式,它可以做同样的事情,但可以很容易地修改为1)特定的标签,和/或2)特定的标签班级或ID。

例如,您可以指示正则表达式仅匹配段落标记或仅匹配表格标记 - 或仅匹配ID为“MyTable”的表格标记。

我一直在谷歌搜索各种标签剥离页面,并发现了许多应该做我所描述的脚本。但是,到目前为止我尝试的那些(对我来说)不起作用,或者我还没有想出如何修改它们以仅使用类“pfirst”来定位span标签。

此外,似乎Dreamweaver和TextWrangler使用不同的正则表达式语法,所以我可能需要找到不同的文本编辑器?

1 个答案:

答案 0 :(得分:1)

也许你可以使用替换。因此,您可以匹配开始和结束标记以及它们中的文本,然后只替换文本。这是一个例子:

<[^>]*.(.*)<[^>]*.

然后由小组\1替换匹配,这是标签之间匹配的文字。

以下是一个例子:

http://regex101.com/r/qY3aU1

您可以看到它只匹配中间的文本,因为这是唯一匹配的组。然后,用第一组\1

替换整个正则表达式

我不知道具体的语言,但这就是python中的样子:

>>> original_string = '<span class="pfirst">We won!</span>'
>>> new_string = re.sub(r'<[^>]*.(.*)<[^>]*.', r'\1', original_string)
>>> print new_string
We won!