1.java正则表达式
\d表示数字 \d+表示一到多个数字 \d*表示匹配一个数字零次或者多次 \d?匹配一个数字零次或一次
w 等价于[A-Za-z0-9] W等价于[^A-Za-z0-9]
s 匹配任何空白字符 等价于[f v] S 匹配任何非空白字符 等价于[^f v]
d 匹配一个数字 D匹配一个非数字
匹配一个字边界,即字与空格间的位置。例如,"er"匹配"never"中的"er",但不匹配"verb"中的"er" B 非字边界匹配。"erB"匹配"verb"中的"er",但不匹配"never"中的"er"。
[a-z]字符范围。匹配指定范围内的任何字符。例如,"[a-z]"匹配"a"到"z"范围内的任何小写字母。 [^a-z]反向范围字符。匹配不在指定的范围内的任何字符。例如,"[^a-z]"匹配任何不在"a"到"z"范围内的任何字符。
. 匹配除" "之外的任何单个字符。
[sS] 若要匹配包括" "在内的任意字符,
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"); } } }