Greedy and Non-Greedy Matching in a Regular Expression

This section illustrates you how to match a string in
the given string through the Greedy and Non-Greedy way of matching. Here you can
learn about the Greedy and Non-Greedy way of matching the word. Through this
method or way you can easily search the appropriate string or text from the
given string or text or from the file content according to the requirement of
the application. In this section, an example is given for the best illustration
of that. You can simply copy and paste the code of the program in your java
application for the easy search or match of the string or text in the
appropriate source of the content in which something has to be searched or
matched.
Greedy Matching: This is the way of matching
string from one to another. In this method, the matcher returns that word of the
complete content of the file or the string or text in which all the characters
of the search string is found.
Non-Greedy Matching: In this way of the
matching, string is searched in the complete string or text inputed by the user
or the contents of the file upto last characters till any character of the
searched string is found in the complete string or text in which another one is
searched. In this way of matching, the matcher returns all the words or
character from the whole string or text where from no any characters are fond in
the string or text which is not present in the searched string or text.
Program Result:
This program takes a collection of string or text in
which the specified string has to be searched and replace from the another
specified character or word. This program implements both way of matching
(Greedy and Non-Greedy). Through the Greedy way of matching, in the given string
or text, "abc" is searched and if matcher finds the word, the complete
word, which is started with the character "a" and ends with the
character "c", is replaced with the character "F".
And in the Non-Greedy way of matching, "abc"
is searched in the given string and from start to end till any character is fond
in the complete string or text or content of the file. In this way, matcher
returns the word or string in which no any character of the searched string is
available.
Code Description:
"a.+?c":
This is the regular expression which is used in the following program for
the Non-Greedy search or matching from the given string or the content of the
file.
"a.*c":
This is also a regular expression of java programming language which
performs the Greedy search or matching from the given string or the content of
the file.
Here is the code of the program:
import java.util.regex.*;
import java.io.*;
public class GreedyAndNonGreedyMatching{
public static void main(String[] args) throws IOException{
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
// System.out.print("Enter string/text in which search
operation will be performed: ");
String string = in.readLine();
// Non-Greedy Matching.
Pattern pattern = Pattern.compile("a.+?c");
Matcher matcher = pattern.matcher(string);
String str = matcher.replaceAll("F");
System.out.println(str);
// Greedy Matching.
pattern = Pattern.compile("a.*c");
matcher = pattern.matcher(string);
str = matcher.replaceAll("z");
System.out.println(string);
System.out.println(str);
}
}
|
Download this
example.

|
Current Comments
0 comments so far (post your own) View All Comments Latest 10 Comments: