How to use regular
expressions with String methods in Java?
Strings
in Java have built-in support for regular
expressions. Strings
have 4 built-in methods for regular expressions,
i.e., the matches()
, split())
, replaceFirst()
and replaceAll()
methods.
Method
|
Description
|
s.split("regex") |
Creates an array with substrings of
s divided at occurrence of "regex" . "regex" is not included in the result. |
s.replaceFirst("regex"),
"replacement" |
Replaces first occurrence of
"regex" with replacement . |
s.matches("regex") |
Evaluates if
"regex" matches s . Returns only true if the WHOLE
string can be matched. |
s.replaceAll("regex"),
"replacement" |
Replaces all occurrences of
"regex" with replacement . |
Now lets see the implementation of regex in Java String.
package com.codebyakram.regex; public class RegexTest { public static final String DATA = "This is my small example " + "string which I'm going to " + "use for pattern matching."; public static void main(String[] args) { System.out.println(DATA.matches("\\w.*")); String[] splitString = (DATA.split("\\s+")); System.out.println(splitString.length);// should be 14 for (String string : splitString) { System.out.println(string); } // replace all whitespace with tabs System.out.println(DATA.replaceAll("\\s+", "\t")); } }Examples
Now let’s see another example for regex in Java.
package com.codebyakram.regex;; public class StringMatcher { // returns true if the string matches exactly "true" public boolean isTrue(String s){ return s.matches("true"); } // returns true if the string matches exactly "true" or "True" public boolean isTrueVersion2(String s){ return s.matches("[tT]rue"); } // returns true if the string matches exactly "true" or "True" // or "yes" or "Yes" public boolean isTrueOrYes(String s){ return s.matches("[tT]rue|[yY]es"); } // returns true if the string contains exactly "true" public boolean containsTrue(String s){ return s.matches(".*true.*"); } // returns true if the string contains of three letters public boolean isThreeLetters(String s){ return s.matches("[a-zA-Z]{3}"); // simpler from for // return s.matches("[a-Z][a-Z][a-Z]"); } // returns true if the string does not have a number at the beginning public boolean isNoNumberAtBeginning(String s){ return s.matches("^[^\\d].*"); } // returns true if the string contains a arbitrary number of characters except b public boolean isIntersection(String s){ return s.matches("([\\w&&[^b]])*"); } // returns true if the string contains a number less than 300 public boolean isLessThenThreeHundred(String s){ return s.matches("[^0-9]*[12]?[0-9]{1,2}[^0-9]*"); } }
No comments:
Post a Comment