Computer >> Computer tutorials >  >> Programming >> Java

What is regular expression in Java?


A regular expression is a string of characters that defines/forms a pattern to search an input text. A regular expression may contain one or more characters, using a regular expression you can search or replace a string.

Java provides the java.util.regex package for pattern matching with regular expressions. This package contains three classes they are −

  • Pattern class: The pattern class of this package is a compiled representation of a regular expression. To match a regular expression with a String this class provides two methods namely:
  • compile(): This method accepts a String representing a regular expression and returns an object of the Pattern object.
  • matcher(): This method accepts a String value and creates a matcher object which matches the given String to the pattern represented by the current pattern object.
  • The Matcher class of java.util.regex package is an engine which performs match operations. To find the matched value this you need to use two methods of this class namely:
  • find(): This method returns true if the match operation represented by the current object is successful else, it returns false.
  • group(): This method accepts a integer value representing a particular group and returns the sequence captured by the specified group in the match operation.
  • PatternSyntaxException− A PatternSyntaxException object is an unchecked exception that indicates a syntax error in a regular expression pattern.

Example

import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
   public static void main( String args[] ) {
      Scanner sc = new Scanner(System.in);
      System.out.println("Enter input string: ");
      String input = sc.nextLine();
      String regex = "[^\\p{ASCII}]";  
      //Creating a pattern object
      Pattern pattern = Pattern.compile(regex);  
      //Matching the compiled pattern in the String
      Matcher matcher = pattern.matcher(input);
      //Creating an empty string buffer
      StringBuffer sb = new StringBuffer();
      while (matcher.find()) {          
          matcher.appendReplacement(sb, "");
      }
      matcher.appendTail(sb);
      System.out.println("Result: \n"+ sb.toString() );
   }
}

Output

Enter input string:
whÿ do we fall
Result:
wh do we fall

Example

import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class StartExample {
   public static void main(String[] args) {      
      Scanner sc = new Scanner(System.in);
      System.out.println("Enter input text: ");
      String input = sc.nextLine();

      String regex = "[t]";
      //Creating a pattern object
      Pattern pattern = Pattern.compile(regex);  
      //Matching the compiled pattern in the String
      Matcher matcher = pattern.matcher(input);
      int count =0;
      while (matcher.find()) {
         int start = matcher.start();
         System.out.println(start);
      }
   }
}

Output

Enter input text:
Hello how are you welcome to Tutorialspoint
26
31
42