(?i)正则表达式结果 - “没什么”被Something取代

时间:2012-10-14 15:29:28

标签: java regex

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

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

输出

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

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

2 个答案:

答案 0 :(得分:3)

使用(?i)裸相当于匹配case-insensitive空字符串

您需要在(?i)之后添加一些内容,以便将不区分大小写的内容应用于..

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

答案 1 :(得分:1)

该模式不匹配,每个角色的任何一侧都没有任何东西:)

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