正则表达式 - 使用Case INSENSITIVE搜索单词并用相同的单词替换它

时间:2012-10-17 06:17:57

标签: java string search replace case-insensitive

  

可能重复:
  regex replace all ignore case

如何获得所需的输出?

输入字符串 -

"Software Industry. software Industry. SOFTWARE INDUSTRY. software industry. "

要搜索的字词 -

"software industry"

输出 -

"*Software Industry*. *software Industry*. *SOFTWARE INDUSTRY*. *software industry*. "

简而言之,我必须找到一个短语并用开头和结尾的星号(*)替换相同的短语,忽略案例..

3 个答案:

答案 0 :(得分:3)

您可以使用模式匹配(正则表达式)。

首先使用group提取短语并存储在字符串或任何其他数据结构中。 然后使用Replace功能来实现输出。

你可以参考这篇文章:http://www.vogella.com/articles/JavaRegularExpressions/article.html

答案 1 :(得分:3)

您可以replaceAll使用(?i)进行case-insensitive替换。

String str = "Software Industry. software Industry. SOFTWARE INDUSTRY. "+
                                                    "software industry. "
str = str.replaceAll("(?i)(software industry)", "\\*$1\\*");

答案 2 :(得分:2)

您还可以尝试以下方式:

String str=new String("Software Industry. software Industry. SOFTWARE INDUSTRY. software industry.");
str=Pattern.compile("(software industry)",Pattern.CASE_INSENSITIVE).matcher(str).replaceAll("*$1*");