Java Tutorial/Development/Regular Expressions
Содержание
- 1 Pattern match: J.*\\d[-\\d\\d-\\d\\d
- 2 Replace all words with another string
- 3 Replace first three digits with "digit"
- 4 Replace one string with another string
- 5 Replace "*" with "^"
- 6 Split string with comma
- 7 Validate Address
- 8 Validate city and state
- 9 Validate Phone
- 10 Validate the first name and last name
- 11 Validate Zip
Pattern match: J.*\\d[-\\d\\d-\\d\\d
<source lang="java">
import java.util.regex.Matcher; import java.util.regex.Pattern; public class MainClass {
public static void main( String args[] ) { // create regular expression Pattern expression = Pattern.rupile( "J.*\\d[0-35-9]-\\d\\d-\\d\\d" ); String string1 = "Jack"s Birthday is 05-12-75\n" + "Joe"s Birthday is 11-04-68\n" + "Tom"s Birthday is 04-28-73\n" + "Lee" + "s Birthday is 12-17-77"; // match regular expression to string and print matches Matcher matcher = expression.matcher( string1 ); while ( matcher.find() ) System.out.println( matcher.group() ); }
}</source>
Jack"s Birthday is 05-12-75 Joe"s Birthday is 11-04-68
Replace all words with another string
<source lang="java">
public class MainClass {
public static void main( String args[] ) { String firstString = "This sentence ends in 5 stars *****"; String secondString = "1, 2, 3, 4, 5, 6, 7, 8"; System.out.printf( "Original String 1: %s\n", firstString ); // replace words with "word" System.out.printf( "Every word replaced by \"word\": %s\n\n", firstString.replaceAll( "\\w+", "word" ) ); System.out.printf( "Original String 2: %s\n", secondString ); }
}</source>
Original String 1: This sentence ends in 5 stars ***** Every word replaced by "word": word word word word word word ***** Original String 2: 1, 2, 3, 4, 5, 6, 7, 8
Replace first three digits with "digit"
<source lang="java">
public class MainClass {
public static void main( String args[] ) { String firstString = "This sentence ends in 5 stars *****"; String secondString = "1, 2, 3, 4, 5, 6, 7, 8"; System.out.printf( "Original String 1: %s\n", firstString ); // replace first three digits with "digit" for ( int i = 0; i < 3; i++ ) secondString = secondString.replaceFirst( "\\d", "digit" ); System.out.printf( "First 3 digits replaced by \"digit\" : %s\n", secondString ); }
}</source>
Original String 1: This sentence ends in 5 stars ***** First 3 digits replaced by "digit" : digit, digit, digit, 4, 5, 6, 7, 8
Replace one string with another string
<source lang="java">
public class MainClass {
public static void main( String args[] ) { String firstString = "This sentence ends in 5 stars *****"; System.out.printf( "Original String 1: %s\n", firstString ); // replace "stars" with "carets" firstString = firstString.replaceAll( "stars", "carets" ); System.out.printf( "\"carets\" substituted for \"stars\": %s\n", firstString ); }
}</source>
Original String 1: This sentence ends in 5 stars ***** "carets" substituted for "stars": This sentence ends in 5 carets *****
Replace "*" with "^"
<source lang="java">
public class MainClass {
public static void main( String args[] ) { String firstString = "This sentence ends in 5 stars *****"; System.out.printf( "Original String 1: %s\n", firstString ); // replace "*" with "^" firstString = firstString.replaceAll( "\\*", "^" ); System.out.printf( "^ substituted for *: %s\n", firstString ); }
}</source>
Original String 1: This sentence ends in 5 stars ***** ^ substituted for *: This sentence ends in 5 stars ^^^^^
Split string with comma
<source lang="java">
public class MainClass {
public static void main( String args[] ) { String secondString = "1, 2, 3, 4, 5, 6, 7, 8"; String output = "String split at commas: ["; String[] results = secondString.split( ",\\s*" ); // split on commas for ( String string : results ) output += "\"" + string + "\", "; output = output.substring( 0, output.length() - 2 ) + "]"; System.out.println( output ); }
}</source>
String split at commas: ["1", "2", "3", "4", "5", "6", "7", "8"]
Validate Address
<source lang="java">
public class MainClass {
public static void main( String[] args ) { System.out.println(validateAddress("123, Street")); } // validate address public static boolean validateAddress( String address ) { return address.matches( "\\d+\\s+([a-zA-Z]+|[a-zA-Z]+\\s[a-zA-Z]+)" ); } // end method validateAddress
}</source>
Validate city and state
<source lang="java">
public class MainClass {
public static void main( String[] args ) { System.out.println(validateCity("Street")); System.out.println(validateState("CA")); } // validate city public static boolean validateCity( String city ) { return city.matches( "([a-zA-Z]+|[a-zA-Z]+\\s[a-zA-Z]+)" ); } // end method validateCity // validate state public static boolean validateState( String state ) { return state.matches( "([a-zA-Z]+|[a-zA-Z]+\\s[a-zA-Z]+)" ) ; } // end method validateState
}</source>
Validate Phone
<source lang="java">
public class MainClass {
public static void main( String[] args ) { System.out.println(validatePhone("123-456-1111")); } public static boolean validatePhone( String phone ) { return phone.matches( "[1-9]\\d{2}-[1-9]\\d{2}-\\d{4}" ); } // end method validatePhone
}</source>
Validate the first name and last name
<source lang="java">
public class MainClass {
public static void main( String[] args ) { System.out.println(validateFirstName("Tom")); System.out.println(validateLastName("Tom")); } // validate first name public static boolean validateFirstName( String firstName ) { return firstName.matches( "[A-Z][a-zA-Z]*" ); } // end method validateFirstName // validate last name public static boolean validateLastName( String lastName ) { return lastName.matches( "[a-zA-z]+([ "-][a-zA-Z]+)*" ); } // end method validateLastName
}</source>
Validate Zip
<source lang="java">
public class MainClass {
public static void main( String[] args ) { System.out.println(validateZip("123456")); } // validate zip public static boolean validateZip( String zip ) { return zip.matches( "\\d{5}" ); }
}</source>