正则表达式对照表(来自百度,仅供参考)
正则表达式 | 匹配的字符串 |
k | k |
abc | abc |
[abc] | a, b, c |
[abc][123] | a1,b3,c2,a3,b1,c2 |
[a-z] | a,z,g,r |
[a-zA-Z_0-9] | a,A,0,9,_ |
[\u4e00-\u9fa5] | 中文范围 |
\d | 数字 [0-9] |
\D | 排除数字 [^0-9] |
\w | 单词字符[a-zA-Z_0-9] |
\W | 排除单词字符 |
\s | 空白字符 |
\S | 排除空白字符 |
. | 任意字符 |
[abc]? | ? 0或1个 a,b,,c |
[abc]?[123] | a1,b2,c3,3,1 |
[abc]* | * 0到多个 a,aa,,abcaccbcacb |
[abc]+ | + 1到多个 a,ab,abc,abcbcbcca |
[abc]{3} | 3个 aaa,bab,abc,cba,cca |
[abc]{3,5} | 3到5个 abc,abca,abcab |
[abc]{3,} | 3到多个,至少3个 abc,abcc,cbccaaaccbca |
| | 或 |
^ | 字符集内,表示排除; 字符集外,表示起始位置 |
^a\d+ | a5,a5342,a6343,a463452 |
$ | 表示结尾位置 |
\d+a$ | 5a,6345a,64534522a |
字符串的一些正则表达式匹配运算常用方法
matches(正则)
当前字符串,是否能与指定的正则表达式相匹配
split(正则)
"abc,def,ghi"
["abc", "def", "ghi"]
replaceAll(正则,子串)
两段示例代码
身份证号与电话号
1 import java.util.Scanner; 2 5 public class Test1 { 7 public static void main(String[] args) { 9 System.out.println("\n\n-----------------"); 11 f1(); 13 System.out.println("\n\n-----------------"); 15 f2(); 17 } 20 21 private static void f1() { 23 System.out.println("输入身份证号:"); 25 String s = new Scanner(System.in).nextLine(); 27 /* 29 * 123456789012345 31 * 123456789012345678 33 * 12345678901234567x 35 * 12345678901234567X 37 * 39 * \d{15}| 41 * \d{15}|\d{17} 43 * \d{15}|\d{17}[\dxX] 45 * 47 * 正则表达式中的“\”, 49 * 在Java字符串中要写成转义格式 51 * \\d{15}|\\d{17}[\\dxX] 53 * 55 */ 57 //判断输入格式 59 String regex = "\\d{15}|\\d{17}[\\dxX]"; 61 if(s.matches(regex)) { 63 System.out.println("格式正确"); 65 } else { 67 System.out.println("格式错误"); 69 } 71 } 72 77 private static void f2() { 79 System.out.println("输入固定电话号码:"); 81 String s = new Scanner(System.in).nextLine(); 83 /* 85 * 1234567 87 * 12345678 89 * 010-1234567 91 * 0101-12345678 93 * (010)1234567 95 * (0101)12345678 97 * 99 * \d{7,8} 101 * (区号)?\d{7,8} 103 * (|)?\d{7,8} 105 * (\d{3,4}-|)?\d{7,8} 107 * (\d{3,4}-|())?\d{7,8} 109 * (\d{3,4}-|\(\))?\d{7,8} 111 * (\d{3,4}-|\(\d{3,4}\))?\d{7,8} 113 * 115 * (\\d{3,4}-|\\(\\d{3,4}\\))?\\d{7,8} 117 * 119 */ 121 //判断输入格式 123 String regex = "(\\d{3,4}-|\\(\\d{3,4}\\))?\\d{7,8}"; 125 if(s.matches(regex)) { 127 System.out.println("格式正确"); 129 } else { 131 System.out.println("格式错误"); 133 } 135 } 137 } 138 139