我正在尝试找到一种方法来匹配任何xml或html标记内存在不的内容。我已经读过,使用正则表达式对解析xml / html来说根本不好,而且我愿意接受任何可以解决我的问题的解决方案,但是如果正则表达式工作得更好的话。
以下是我正在寻找的一个例子:
the lazy fox jumped <span>over</span> the brown fence.
我想要的是
the lazy fox jumped the brown fence
有什么想法吗?
答案 0 :(得分:2)
在字符串上运行此命令:
s/\(.*\)<.*>.*<.*>\(.*\)/\1\2/
您可能需要根据实现更改一些细节(例如,可能不需要转义括号),但这将完全符合您的要求(使用双空格和中间的所有内容)。
答案 1 :(得分:1)
这可能是一种天真的技巧,但我的第一直觉是运行正则表达式,找出它在父字符串中匹配的文本,并从该字符串中删除它,返回余数。在伪代码中,
String input = "whatever";
matches = Regex.Matches(input,"<.*>.*?</.*>");
foreach (match m in Matches)
{
input = input.Remove(m.Value);
}