[an error occurred while processing this directive]

Compiling a Pattern with Multiple Flags


In this section you will learn how to compile a pattern with multiple flags like multiline, case insensitivity of the characters in the string etc. This section provides you an example for the implementation of the concept about how is it done? Following program has been used some APIs for compiling pattern with multiple flags i.e. explained ahead.

Program Result:

This program has mentioned string "Abc\ndef" as a input string and compiles  the string "\n" which lies in the input string and replaced by the string "\t" after checking whether the pattern string either found or not in the input string. Here in the given program, the pattern string ("\n") is splitted from the input string.

Code Description:

Pattern.compile(patternStr, Pattern.MULTILINE | Pattern.CASE_INSENSITIVE):
Above method compiles the string assigned with the String type variable patternStr with multiple flags which are given follows:

  • patternStr: This is the string which has to be compiled.
  • Pattern.MULTILINE: This is the field of the Pattern class which denotes for the multiline characters in the given string. This field determines the compilation of the string with the multiline character which breaks the string after a specific part.
  • Pattern.CASE_INSENSITIVE: This is also a field of the Pattern class which denotes for the case sensitivity of the character in the given word. By default pattern compiles the string in case sensitive mode. If you pass the CASE_INSENSITIVE field through the compile() method as parameter, it ignores the case of characters in the string.

Here is the code of the program:

import java.util.regex.*;
import java.io.*;

public class MultipleFlag{
  public static void main(String[] args){
    String inputStr = "Abc\ndef";

    //Simply print the original string.
    String patternStr = "\n";

    // Compile with multiline and case-insensitive enabled.
    Pattern pattern = Pattern.compile(patternStr, Pattern.MULTILINE | 
    Matcher matcher = pattern.matcher(inputStr);

    //Finding new line and replacing with a tab.
    boolean matchFound = matcher.find();
    String str = matcher.replaceAll("\t");


    //Split from where the new line character lies in the string.
    String[] strg = "Abc\ndef".split("\n");
    for (int i =0; i<strg.length; i++){
      System.out.print(strg[i" ");

Download this example.


[an error occurred while processing this directive]