Java Pattern compile(String,int)方法及示例

Java Pattern compile(String,int)方法及示例

Pattern 类的 compile(String, int) 方法用于在flags的帮助下从正则表达式中创建一个模式,表达式和flags都是作为参数传递给该方法。Pattern类包含一个标志(int常量)列表,可以帮助使Pattern匹配以某种方式进行。例如,标志名称CASE_INSENSITIVE是用来在匹配时忽略文本的大小写。
语法

public static Pattern compile(String regex, int flags)

参数: 该方法接受两个参数。

  • regex : 这个参数表示将给定的正则表达式编译成一个模式。
  • flag :这个参数是一个整数,代表Match标志,一个位掩码,可能包括CASE_INSENSITIVE, MULTILINE, DOTALL, UNICODE_CASE, CANON_EQ, UNIX_LINES, LITERAL, UNICODE_CHARACTER_CLASS和COMMENTS。

返回值: 该方法返回从传递的regex和flags编译的模式。
异常: 该方法抛出以下异常。

  • PatternSyntaxException: 如果表达式的语法无效,会引发这个异常。
  • IllegalArgumentException: 如果flags中设置了与定义的匹配flags不同的位值,就会引发这个异常。

下面的程序说明了compile(String, int)方法:
程序1 :

// Java program to demonstrate
// Pattern.compile method
 
import java.util.regex.*;
 
public class GFG {
    public static void main(String[] args)
    {
        // create a REGEX String
        String REGEX = "(.*)(for)(.*)?";
 
        // create the string
        // in which you want to search
        String actualString
            = "code of Machine";
 
        // compile the regex to create pattern
        // using compile() method
        Pattern pattern = Pattern.compile(REGEX,
                           Pattern.CASE_INSENSITIVE);
 
        // check whether Regex string is
        // found in actualString or not
        boolean matches = pattern
                              .matcher(actualString)
                              .matches();
 
        System.out.println("actualString "
                           + "contains REGEX = "
                           + matches);
    }
}

输出

actualString contains REGEX = false

程序2:

// Java program to demonstrate
// Pattern.compile method
 
import java.util.regex.*;
 
public class GFG {
    public static void main(String[] args)
    {
        // create a REGEX String
        String REGEX = ".*org.*";
 
        // create the string
        // in which you want to search
        String actualString
            = "geeksforgeeks.org";
 
        // compile the regex to create pattern
        // using compile() method
        Pattern pattern = Pattern.compile(REGEX,
                             Pattern.CASE_INSENSITIVE);
 
        // check whether Regex string is
        // found in actualString or not
        boolean matches = pattern
                              .matcher(actualString)
                              .matches();
 
        System.out.println("actualString "
                           + "contains REGEX = "
                           + matches);
    }
}

输出

actualString contains REGEX = true

参考资料:
https://docs.oracle.com/javase/10/docs/api/java/util/regex/Pattern.html#compile(java.lang.String, int)

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程