• Java中Pattern类的quote方法将任何字符串(包括正则表达式)都转换成字符串常量,不具有任何匹配功能


    Java中Pattern类的quote方法将任何字符串(包括正则表达式)都转换成字符串常量不具有任何匹配功能。

    下面是个例子:

    import org.junit.Test;
    
    import java.util.ArrayList;
    import java.util.List;
    import java.util.regex.Pattern;
    
    public class TestPattern {
    
        @Test
        public void testQuote(){
            List<String> stringList = new ArrayList<>();
            stringList.add("Hi123HitianHiyan");
            stringList.add("Hiaaa");
            stringList.add("aaa");
            stringList.add("Hi\/*");
            stringList.add("Hi\w*123");
            stringList.add("Hi\w*");
    
            final String patternString = "Hi\w*";
    
            //根据patternString正则表达式匹配数组
            System.out.println("---patternString---");
            for (String string : stringList){
                if(Pattern.matches(patternString, string)){
                    System.out.println(string);
                }
            }
    
            System.out.println("---quote---");
            String quote = Pattern.quote(patternString);
            System.out.println("patternString:"+quote);
            for (String string : stringList){
                if(Pattern.matches(quote, string)){
                    System.out.println(string);
                }
            }
    
        }
    
    }

    执行之后,结果如下:

    可以看到,正则表达式"Hi\w*"匹配以"Hi"开头的后面任意个数字、字母、下划线、汉字;

    然后使用了Pattern.quote("Hi\w*")后,该方法的返回值就是"QHi\w*E",这就是表示一个字符串常量"Hi\w*",不具有原来正则表达式的功能,只匹配该字符串常量

    场景

    接口接收一个参数name,模糊查询时只想要匹配name的字符串,这是接收到这个参数就可以使用name = Pattern.quote(name),用处理后的name去查询。

  • 相关阅读:
    700. Search in a Binary Search Tree
    100. Same Tree
    543. Diameter of Binary Tree
    257. Binary Tree Paths
    572. Subtree of Another Tree
    226. Invert Binary Tree
    104. Maximum Depth of Binary Tree
    1、解决sublime打开文档,出现中文乱码问题
    移植seetafaceengine-master、opencv到ARM板
    ubuntu16.04-交叉编译-SeetaFaceEngine-master
  • 原文地址:https://www.cnblogs.com/theRhyme/p/10310709.html
Copyright © 2020-2023  润新知