欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

Java 代码中需要使用转义符的地方-1. 正则表达式转义

最编程 2024-02-10 18:58:51
...

Java 代码中使用到正则表达式里含有特殊字符时需要使用转义符\进行转义。

. ? * + ! ^ $ [ ] ( ) \ 

因为反斜线\也是特殊字符,所以特殊符号的转义需使用双反斜线\\,否则会报java.util.regex.PatternSyntaxException异常。

public static void main(String[] args) {
    String string = "435212.jpg";
    if (string.contains(".")) {
        System.out.println("包含一个点");
    }
    String suffix = string.split("\\.")[1];
    System.out.println(suffix);
}

上面代码的运行结果是:
在这里插入图片描述
可以看出 contains 方法不需要转义,而 split 方法就需要转义了,所以 JDK API 中只有参数是正则表达式的地方才需要转义。

java.lang.String类中参数是正则表达式的方法有:

public boolean matches(String regex);

public String replaceFirst(String regex, String replacement);

public String replaceAll(String regex, String replacement);

public String[] split(String regex);

public String[] split(String regex, int limit);

示例:将 List 通过正则转换为 SQL 中 IN 条件字符串(使用了 replaceAll 方法):

public static void main(String[] args) {
    List<String> list = new ArrayList<>();
    list.add("aaaa");
    list.add("bbbb");
    String str = "('" + list.toString().replaceAll("\\[|\\]|\\s", "").replaceAll(",", "','") + "')";
    System.out.println(str);
}

推荐阅读