1

我正在尝试不区分大小写的模式匹配。为了学习,我尝试了以下方法,发现很难分析正在发生的事情。

   String x = "Hello";
   String pattern = "(?i)";
   System.out.println(x.replaceAll(pattern, "</code>")); 

输出是

</code>H</code>e</code>l</code>l</code>o</code>

有人可以解释一下这种行为吗

4

2 回答 2

3

使用(?i)bare相当于匹配case-insensitive空String

您需要在(?i)将不区分大小写的匹配应用于..

这就是为什么此模式匹配每个空字符串、、after each characteralso before the first character,并将其替换为:-</code>

于 2012-10-14T15:32:01.897 回答
1

该模式与任何内容都不匹配,并且每个字符的两侧都没有任何内容:)

(嗯,实际上有很多空,但每个索引只能有一个匹配项。)

于 2012-10-14T15:30:52.813 回答