1 正则表达式(Regular Expression)
1.1 概念理解
正则表达式独立于特定的语言。用事先定义的特定字符、以及这些特定字符的组合,组成一个“规则字符串”,用来描述匹配一个字符串的模式。这是一个处理字符串的强大工具。
1.2 作用
- 测试字符串内的模式
- 识别/替换文本
- 提取文本
2 java的正则表达式
java.util.regex包中:
- Pattern类
- Matcher类
常用的正则表达式
正则表达式 | 匹配 | 实例 |
---|---|---|
x | 指定字符x | Java匹配Java |
. | 任意单个字符 | Java匹配J..a |
(ab|cd) | ab或cd | ten匹配t(en|im) |
[abc] | a、b或c | Java匹配Ja[uvwx]a |
[^abc] | 除开a、b或c之外的任意字符 | Java匹配Ja[^ars]a |
[a-z] | a到z | Java匹配[A-Z]av[a-d] |
[^a-z] | 除开a到z的任意字符 | Java匹配Jav[^b-d] |
[a-e[m-p]] | a到e或m到p | Java匹配[A-G[I-M]av[a-d] |
a-e&&[c-p]] | a到e和c到p的交集 | Java匹配[A-P]&&[I-M]]av[a-d] |
下面这个\d还是\\d呢? | ||
\d | 个位数,等同于[0-9] | Java2匹配"Java[\\d]" |
\D | 一位非数字 | $Java匹配"[\\D][\\D]ava" |
\w | 单词字符 | Java1匹配"[\\w]ava[\\w] |
\W | 非单词字符 | $Java匹配"[\\W][\\w]ava" |
\s | 空白字符 | "Java 2"匹配"Java\\s2" |
\S | 非空白字符 | Java匹配"[\\S]Java" |
量词符 | ||
p* | 模式p的0或多次出现 | aaaabb匹配"abb" ababab匹配"(ab)" |
p+ | 模式p的1或多次出现 | a匹配"a+b" able匹配"(ab)+." |
p? | 模式p的0或1次出现 | Java匹配"J?Java" Java匹配"J?ava" |
p{n} | 模式p的正好n次出现 | Java匹配"Ja{1}" Java不匹配".{2}" |
p{n,} | 模式p的至少n次出现 | aaaa匹配"a{1,}" a不匹配"a{2,}" |
p{n,m} | 模式p的在n到m次之间的出现次数 | aaaa匹配"a{1,9}" abb不匹配"a{2,9}bb)*" |