一、工具
1.1 正则表达式验证工具
1.2 练习工具
二、例子
使用正则表达式匹配以下文本,很明显所有文本都是以ick结尾的,对应的正则为ick$
Mick
Rick
allocochick
backtrick
bestick
candlestick
java中处理正则表达式的类位于java.util.regex包中,包含pattern、matcher和PatternSyntaxException类。
判断010-62761234是不是一个电话号码:
import java.util.regex.Pattern;
public class ResTest1 {
public static void main(String[] args) {
String str = "010-62731234";
String pattern = "0\\d{2}-\\d{8}";
boolean isMatch = Pattern.matches(pattern, str);
System.out.println(isMatch);
}
}
正则表达式语法:
子表达式 | 匹配对应 |
---|---|
^ | 匹配一行的开头 |
$ | 匹配一行的结尾 |
. | 匹配除了换行符的任何单个字符,也可以利用 m 选项允许它匹配换行符 |
[…] | 匹配括号内的任意单个字符。 |
[^…] | 匹配不在括号内的任意单个字符。 |
\A | 整个字符串的开始 |
\z | 整个字符串的结束 |
\Z | 整个字符串的结束,除了最后一行的结束符 |
re* | 匹配0或者更多的前表达事件 |
re+ | 匹配1个或更多的之前的事件 |
re? | 匹配0或者1件前表达事件 |
re{ n} | 匹配特定的n个前表达事件 |
re{ n,} | 匹配n或者更多的前表达事件 |
re{ n, m} | 匹配至少n最多m件前表达事件 |
a|b | 匹配a或者b |
(re) | 正则表达式组匹配文本记忆 |
(?: re) | 没有匹配文本记忆的正则表达式组 |
(?> re) | 匹配无回溯的独立的模式 |
\w | 匹配单词字符 |
\W | 匹配非单词字符 |
\s | 匹配空格。等价于 [\t\n\r\f] |
\S | 匹配非空格 |
\d | 匹配数字. 等价于 [0-9] |
\D | 匹配非数字 |
\A | 匹配字符串的开始 |
\Z | 匹配字符串的末尾,如果存在新的一行,则匹配新的一行之前 |
\z | 匹配字符串的末尾 |
\G | 匹配上一次匹配结束的地方 |
\n | 返回参考捕获组号“N” |
\b | 不在括号里时匹配单词边界。在括号里时匹配退格键 |
\B | 匹配非词边界 |
\n, \t, etc. | 匹配换行符,回车符,制表符,等 |
\Q | 引用字符的初始,结束于\E |
\E | 结束由\Q开始的引用 |