我正在尝试使用regexp来解析类似于此的字符串:
<tag>Text that is written here. This could happen here: <Inline::~Inline> </tag>
如何使用regexp替换“&lt;”和“&gt;”来自内联的字符。问题是Inline可能有不同的名称,在主标签内可以看到比较,例如'&lt; 20' 。
感谢。
答案 0 :(得分:3)
假设内联标记:
那么这应该有效:
String s= "<tag>some text here > 20 <test::~test> and then </tag>";
s = s.replaceAll("<((\\w+)::~\\2)>","$1");
System.out.println(s);
无论调用内联/测试是什么。
已编辑 - 忘记将两个冒号放入: - )
答案 1 :(得分:1)
因为我觉得这是一个值得回答的问题,所以我把它写成答案而不是评论:
RegEx match open tags except XHTML self-contained tags当然是问题的第一个answer。 所以,要明确和简短:甚至不要尝试使用正则表达式。
答案 2 :(得分:0)
此模式应与任何标记匹配:
<(.|\n)*?>
因此对于内联匹配:
<Inline(.|\n)*?>