在html标记之外匹配数据的问题

时间:2009-09-11 19:26:05

标签: regex

我正在尝试找到一种方法来匹配任何xml或html标记内存在的内容。我已经读过,使用正则表达式对解析xml / html来说根本不好,而且我愿意接受任何可以解决我的问题的解决方案,但是如果正则表达式工作得更好的话。

以下是我正在寻找的一个例子:

the lazy fox jumped <span>over</span> the brown fence.

我想要的是

the lazy fox jumped  the brown fence

有什么想法吗?

2 个答案:

答案 0 :(得分:2)

在字符串上运行此命令:

s/\(.*\)<.*>.*<.*>\(.*\)/\1\2/

您可能需要根据实现更改一些细节(例如,可能不需要转义括号),但这将完全符合您的要求(使用双空格和中间的所有内容)。

答案 1 :(得分:1)

这可能是一种天真的技巧,但我的第一直觉是运行正则表达式,找出它在父字符串中匹配的文本,并从该字符串中删除它,返回余数。在伪代码中,

String input = "whatever";
matches = Regex.Matches(input,"<.*>.*?</.*>");
foreach (match m in Matches)
{
input = input.Remove(m.Value);
}