繁体   English   中英

用于String的AllInnsensitive变量replaceAll(,)方法Java

[英]Case Insensitive variable for String replaceAll(,) method Java

任何人都可以帮我创建java中的变量的正则表达式,以便字符串变量将被视为不区分大小写并用WINDOWS替换每个单词,如Access,access等等吗?

这是代码:

$html=html.replaceAll(label, "WINDOWS");

请注意,label是一个字符串变量。

只需将“不区分大小写”开关添加到正则表达式:

html.replaceAll("(?i)"+label, "WINDOWS");

注意:如果标签可能包含具有特殊正则表达式重要性的字符,例如,如果标签是".*" ,但您希望标签被视为纯文本(即不是正则表达式),请在标签周围添加正则表达式引号,或者

html.replaceAll("(?i)\\Q" + label + "\\E", "WINDOWS");

要么

html.replaceAll("(?i)" + Pattern.quote(label), "WINDOWS");

String.replaceAll等效于创建匹配器并调用其replaceAll方法,因此您可以执行类似这样的操作以使其不区分大小写:

html = Pattern.compile(label, Pattern.CASE_INSENSITIVE).matcher(html).replaceAll("WINDOWS");

请参阅: String.replaceAllPattern.compile JavaDocs

只需使用模式和匹配器。 这是代码

Pattern p = Pattern.compile("Your word", Pattern.CASE_INSENSITIVE);
Matcher m = p.matcher("String containing words");
String result = m.replaceAll("Replacement word");

使用模式很容易,因为它们不区分大小写。

有关更多信息,请参阅

与正则表达式匹配

Java:模式和匹配器

我想但不确定你想要标签是[Aa][cC][cC][eE][sS][sS]

或者做

html = Pattern.compile(lable, Pattern.CASE_INSENSITIVE)
        .matcher(html).replaceAll("WINDOWS");

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM