
.: 匹配单个字符且仅限一个字符,如a.b
"abc",因为.可以匹配字符b;"a&c",因为.可以匹配字符&;"acc",因为.可以匹配字符c。d:匹配单个数字字符,如00d
"007",因为d可以匹配字符7;"008",因为d可以匹配字符8。w:匹配一个字母、数字或下划线,如javaw
"javac",因为w可以匹配英文字符c;"java9",因为w可以匹配数字字符9;。"java_",因为w可以匹配下划线_。s:匹配一个空格字符,如asc
"a c",因为s可以匹配空格字符``;"a c",因为s可以匹配tab字符t。修饰符*可以匹配任意个字符,包括0个字符。用Ad*可以匹配:
A:因为d*可以匹配0个数字;A0:因为d*可以匹配1个数字0;A380:因为d*可以匹配多个数字380。修饰符+可以匹配至少一个字符。用Ad+可以匹配:
A0:因为d+可以匹配1个数字0;A380:因为d+可以匹配多个数字380。修饰符?可以匹配0个或一个字符。用Ad?可以匹配:
A:因为d?可以匹配0个数字;A0:因为d?可以匹配1个数字0。用修饰符{n}就可以精确指定n个字符。Ad{3}可以精确匹配:
A380:因为d{3}可以匹配3个数字380。用修饰符{n,m}就可以指定匹配n~m个字符。Ad{3,5}可以精确匹配:
A380:因为d{3,5}可以匹配3个数字380;A3800:因为d{3,5}可以匹配4个数字3800;A38000:因为d{3,5}可以匹配5个数字38000。如果没有上限,那么修饰符{n,}就可以匹配至少n个字符。
单个字符的匹配规则如下:
| 正则表达式 | 规则 | 可以匹配 |
|---|---|---|
A | 指定字符 | A |
u548c | 指定Unicode字符 | 和 |
. | 任意字符 | a,b,&,0 |
d | 数字0~9 | 0~9 |
w | 大小写字母,数字和下划线 | a~z A~Z 0~9,_ |
s | 空格、Tab键 | 空格,Tab |
D | 非数字 | a,A,&,_,…… |
W | 非w | &,@,中,…… |
S | 非s | a,A,&,_,…… |
多个字符的匹配规则如下:
| 正则表达式 | 规则 | 可以匹配 |
|---|---|---|
A* | 任意个数字符 | 空,A,AA,AAA,…… |
A+ | 至少1个字符 | A,AA,AAA,…… |
A? | 0个或1个字符 | 空,A |
A{3} | 指定个数字符 | AAA |
A{2,3} | 指定范围个数字符 | AA,AAA |
A{n,} | 至少n个字符 | AA,AAA,AAAA,…… |
A{0,n} | 最多n个字符 | 空,A,AA,AAA |
用^表示开头,$表示结尾。如,^Ad{3}$,可匹配"A001"、"A380"。
使用[...]可以匹配范围内的字符,例如,[123456789]可以匹配1~9,[1-9]也可以匹配1-9。
匹配大小写不限的十六进制数,如1A2b3c,可以这样写:[0-9a-fA-F],可以匹配以下任意范围的字符:
0-9:字符0~9;a-f:字符a~f;A-F:字符A~F。假设要匹配任意字符,但不包括数字,可以写[^1-9]{3}:
"ABC",因为不包含字符1~9;"A00",因为不包含字符1~9;"A01",因为包含字符1;"A05",因为包含字符5。用|连接的两个正则规则是或规则,例如,AB|CD表示可以匹配AB或CD。
复杂匹配规则主要有:
| 正则表达式 | 规则 | 可以匹配 |
|---|---|---|
| ^ | 开头 | 字符串开头 |
| $ | 结尾 | 字符串结束 |
| [ABC] | […]内任意字符 | A,B,C |
| [A-F0-9xy] | 指定范围的字符 | A,……,F,0,……,9,x,y |
| [^A-F] | 指定范围外的任意字符 | 非A~F |
| AB|CD|EF | AB或CD或EF | AB,CD,EF |
import *;public class Main {public static void main(String[] args) {Pattern p = Patternpile("(\d{3,4})\-(\d{7,8})");Matcher m = p.matcher("010-12345678");if (m.matches()) {String g1 = m.group(1);String g2 = m.group(2);System.out.println(g1);System.out.println(g2);} else {System.out.println("匹配失败!");}}
}
正则表达式用(...)分组可以通过Matcher对象快速提取子串:
group(0)表示匹配的整个字符串;group(1)表示第1个子串,group(2)表示第2个子串,以此类推。使用正则表达式替换字符串可以直接调用
public class Main {public static void main(String[] args) {String s = "The quicktt brown fox jumps over the lazy dog.";String r = s.replaceAll("\s+", " ");System.out.println(r); // "The quick brown fox jumps over the lazy dog."}
}
import *;public class Main {public static void main(String[] args) {String s = "the quick brown fox jumps over the lazy dog.";Pattern p = Patternpile("\wo\w");Matcher m = p.matcher(s);while (m.find()) {String sub = s.substring(m.start(), m.end());System.out.println(sub);//row fox dog}}
}
public class MapDemo02 {public static void main(String[] args) {// 创建Map集合对象Map<String, String> map = new HashMap<String,String>();// 添加元素到集合map.put("liu", "1");map.put("chuan", "2");map.put("zheng", "3");// 获 取 所 有 的 entry 对 象 entrySet Set<Entry<String,String>> entrySet = Set();// 遍历得到每一个entry对象for (Map.Entry<String, String> entry : entrySet) {// 解 析String key = Key(); String value = Value();System.out.println(key+":"+value);}}
}
本文发布于:2024-02-03 23:41:36,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170697745351696.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
| 留言与评论(共有 0 条评论) |