The compile(String, int) method of the Pattern class used to create a pattern from the regular expression with the help of flags where both expression and flags are passed as parameters to the method. The Pattern class contains a list of flags (int constants) that can be helpful to make the Pattern matching behave in certain ways. For example, The flag name CASE_INSENSITIVE is used to ignore the case of the text at the time of matching.
Syntax:Â Â
public static Pattern compile(String regex, int flags)
Parameters: This method accepts two parameters:Â Â
- regex: This parameter represents the given regular expression compiled into a pattern.
- flag: This parameter is an integer representing Match flags, a bit mask that may include CASE_INSENSITIVE, MULTILINE, DOTALL, UNICODE_CASE, CANON_EQ, UNIX_LINES, LITERAL, UNICODE_CHARACTER_CLASS and COMMENTS.
Return Value: This method returns the pattern compiled from passed regex and flags.
Exception: This method throws following exceptions:Â Â
- PatternSyntaxException: This exception is raised if the expression’s syntax is invalid.
- IllegalArgumentException: This exception is raised if bit values other than those corresponding to the defined match flags are set in flags.
Below programs illustrate the compile(String, int) method:
Program 1:Â
Java
// 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
Â
Time Complexity : O(N)
Space Complexity : O(1)
Program 2:Â
Â
Java
// 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
Â
Time Complexity : O(N)
Space Complexity : O(1)
References:Â
https://docs.oracle.com/javase/10/docs/api/java/util/regex/Pattern.html#compile(java.lang.String, int)