之前很少写正则表达式,即便是要判断手机号和邮箱之类的功能也是直接copy的网上的内容,最近工作中用到正则表达式比较多,特此记录正则表达式中最常用到的忽略大小写的写法。
直接上代码:
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Test {
public static void main(String[] args) {
String text = "Invoice No : 654321";
Pattern p = Pattern.compile("INVOICE\\s*NO?[\\pP|\\pS\\w\\s]*",Pattern.CASE_INSENSITIVE);
Matcher m = p.matcher(text);
if (m.matches()) {
System.out.println("匹配上了!");
}else {
System.out.println("没匹配上");
}
}
}
运行结果:

通过百度可以得知,Pattern.CASE_INSENSITIVE的作用是启用大小写不敏感匹配,等价于修饰符(?i)。
那么也就是说还有另外一种写法:
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Test {
public static void main(String[] args) {
String text = "Invoice No : 654321";
Pattern p = Pattern.compile("(?i)INVOICE\\s*NO?[\\pP|\\pS\\w\\s]*");
Matcher m = p.matcher(text);
if (m.matches()) {
System.out.println("匹配上了!");
}else {
System.out.println("没匹配上");
}
}
}
运行结果:

最后,会利用正则表达式去掉多余的信息的话,简直就太方便了:
public class Test {
public static void main(String[] args) {
String text = "Invoice No : 654321";
text = text.replaceAll("(?i)INVOICE\\s*NO?[\\pP|\\pS\\s]*", "");
System.out.println(text);
}
}
运行结果:

本文介绍了在Java中如何使用正则表达式进行大小写不敏感的匹配,通过Pattern.CASE_INSENSITIVE标志或使用(?i)修饰符实现。示例代码展示了如何匹配特定字符串并移除相关信息,强调了正则表达式在处理文本信息时的便利性。
6万+

被折叠的 条评论
为什么被折叠?



