非捕获组如何处理空白区域?

时间:2018-04-10 05:16:47

标签: java regex

我想删除 /&gt; &lt; 之间的空白字符, 阅读此https://grokswift.com/json-swift-4/后,我使用了这样的模式(?<=\\>)(\\s*\r?\n?)(?=\\<)。但是当我使用像(?<=\\>)(?:\\s*\r?\n?)(?=\\<)这样的模式时,我发现它也可以很好地工作。这是我的测试用例:

<a>asdfdsf</a> \n     <b> hahaha <b/>     <a>asdfdsf</a> \n     <b> hahaha <b/>   <a>asdfdsf</a> \n     <b> hahaha <b/>

s.replaceAll("(?<=\\>)(?:\\s*\r?\n?)(?=\\<)", "")
s1.replaceAll("(?<=\\>)(\\s*\r?\n?)(?=\\<)", "")

我得到了结果:

<a>asdfdsf</a><b> hahaha <b/><a>asdfdsf</a><b> hahaha <b/><a>asdfdsf</a><b> hahaha <b/>

使用上述2种模式后。

(?:\ s * \ r?\ n?)(?= \&lt;)如何运作?为什么他们有相同的结果?

0 个答案:

没有答案