java正则表达式
1.java正则表达式
\\d表示数字 \\d+表示一到多个数字 \\d*表示匹配一个数字零次或者多次 \\d?匹配一个数字零次或一次
\w 等价于[A-Za-z0-9] \W等价于[^A-Za-z0-9]
\s 匹配任何空白字符 等价于[\f\n\r\t\v] \S 匹配任何非空白字符 等价于[^\f\n\r\t\v]
\d 匹配一个数字 \D匹配一个非数字
\b匹配一个字边界,即字与空格间的位置。例如,"er\b"匹配"never"中的"er",但不匹配"verb"中的"er" \B 非字边界匹配。"er\B"匹配"verb"中的"er",但不匹配"never"中的"er"。
[a-z]字符范围。匹配指定范围内的任何字符。例如,"[a-z]"匹配"a"到"z"范围内的任何小写字母。 [^a-z]反向范围字符。匹配不在指定的范围内的任何字符。例如,"[^a-z]"匹配任何不在"a"到"z"范围内的任何字符。
. 匹配除"\r\n"之外的任何单个字符。
[\s\S] 若要匹配包括"\r\n"在内的任意字符,
2.java正则表达式实例
import java.util.regex.Matcher; import java.util.regex.Pattern; public class RegexMatches { public static void main( String args[] ){ // 按指定模式在字符串查找 String line = "This order was placed for QT3000! OK?"; String pattern = "(.*)(\\d+)(.*)"; // 创建 Pattern 对象 Pattern r = Pattern.compile(pattern); // 现在创建 matcher 对象 Matcher m = r.matcher(line); if (m.find( )) { System.out.println("Found value: " + m.group(0) ); System.out.println("Found value: " + m.group(1) ); System.out.println("Found value: " + m.group(2) ); } else { System.out.println("NO MATCH"); } } }