// Import usefull stuff (needed for option 2) import java.util.regex.Matcher; import java.util.regex.Pattern; public class Indexer { public static void main(String[] args) { // This is the pattern we are going to use: [A-Z]*\\s?(\\d+) // // Explained: // First note: \\ is used to generate one '\' (escaping) // [A-Z] any capital letter // * (0 or more times) // \s white space (ie tab, space) // ? (0 or 1 time) // \d numerical digit // + one or more times // Note: (/d+) means: capture this part separately // Option 1: Going right in if ( "ABC123".matches( "[A-Z]*\\s?(\\d+)" ) ) System.out.println( "'ABC123' matches!" ); if ( "ABC 123".matches( "[A-Z]*\\s?(\\d+)" ) ) System.out.println( "'ABC 123' matches as well!" ); if ( ! "ABC 123".matches( "[A-Z]*\\s?(\\d+)" ) ) System.out.println( "'ABC 123' doesn't!" ); if ( ! "ABC 123X".matches( "[A-Z]*\\s?(\\d+)" ) ) System.out.println( "'ABC 123X' doesn't!" ); // Option 2: faster and more versatile // Pre-compile the regular expression pattern Pattern myPattern = Pattern.compile( "[A-Z]*\\s?(\\d+)" ); // Match it Matcher myMatcher = myPattern.matcher( "ABC123" ); if ( myMatcher.find() ) System.out.println( "Match!" ); // Get the parts out that you want, note: it's a String! String number = myMatcher.group( 1 ); // Use it as a string System.out.println( "Captured: " + number ); // Or parse it to integer int i = Integer.parseInt( myMatcher.group(1) ); System.out.println("Parsed to int and added one: " + ( i + 1 )); } }
Java RegEx
Here's some code to get started with Java regular expression (RegEx) quickly...
Abonneren op:
Reacties posten (Atom)
Geen opmerkingen:
Een reactie posten