String s= "(See <a href=\"/wiki/Grass_fed_beef\" title=\"Grass fed beef\" " +
          "class=\"mw-redirect\">grass fed beef.) They have been used for " +
          "<a href=\"/wiki/Paper\" title=\"Paper\">paper-making since " +
          "2400 BC or before.";


在上面的字符串中,我将html与文本混合在一起。

好了,要求是输出看起来像:


  自公元前2400年或更早以来,它们就已用于造纸。


有人可以帮我提供一个能从给定输入中产生所需输出的通用正则表达式吗?

提前致谢!

最佳答案

下面的表达式:

\([^)]*?\)|<[a-zA-Z/][^>]*?>


将匹配任何看起来像HTML标记的内容和任何带括号的文本。用“”替换所说的文本,然后开始。

注意:如果您尝试匹配其中包含脚本标签的任何字符串,或者匹配“ HTML”(当作者没有将它们用作标签定界符时,作者并不想转义)的字符串,或者匹配一个“(不带)”,事情可能不会如您所愿。

09-04 12:00