正则表达式
来源:互联网 发布:淘宝卖家版怎么登陆 编辑:程序博客网 时间:2024/06/10 22:52
正则表达式:
操作字符串的一种规则,使用了特殊的符号表示
符号:
预定义字符类\
. 任何字符(与行结束符可能匹配也可能不匹配)
\d 数字:[0-9]
\D 非数字: [^0-9]
\s 空白字符:[ \t\n\x0B\f\r]
\S 非空白字符:[^\s]
\w 单词字符:[a-zA-Z_0-9]
\W 非单词字符:[^\w]
注意:任何预定义字符没有加上数量词之前只能匹配一个字符
范围表示[ ]
[abc] a、b 或 c(简单类)
[^abc] 任何字符,除了 a、b 或 c(否定)
[a-zA-Z] a 到 z 或 A 到 Z,两头的字母包括在内(范围)
[a-d[m-p]] a 到 d 或 m 到 p:[a-dm-p](并集)
[a-z&&[def]] d、e 或 f(交集)
注意:没有数量词也只能匹配一个字符
Greedy 数量词{ }
X? X,一次或一次也没有
X* X,零次或多次
X+ X,一次或多次
X{n} X,恰好n次
X{n,} X,至少n次
X{n,m} X,至少n次,但是不超过m次
边界匹配器
\b 只是代表了单词的开始或结束部分,不匹配任何字符
应用:
匹配 :
matches(String regex) 当且仅当字符串指定的正则表达式匹配返回true
切割:
split()为了提高规则复用,用()进行分组,组号从1开始,可以通过编号来引用组所匹配到的内容。需要对编号数字进行转义:\\1就代表获取1组匹配到的内容。
例:
String[] arr = str.split(" +"); \\根据空格进行切割String[] arr = str.split("(.)\\1+"); \\根据重叠词进行切割
替换 :
replaceAll(String regex, String replacement)例:
String[] arr = str.replaceAll("(.)\\1+","$1"); \\把重叠词替换单个词在replaceAll方法正则的外部引用组的内容要使用"$组号"
查找 :
查找不能使用string直接使用,需要使用对象:
- Pattern(正则对象)
- Matcher(匹配器对象)
匹配器方法:
- find() 通知匹配器去匹配字符串,查找符合规则的字符串。返回true,false
- group() 获取符合规则的子串(在使用group方法之前,必须要先用find方法查找,否则报错)
指定为字符串的正则表达式必须先被编译为此类的实例,然后可将得到的正则对象匹配任意的字符串用于创建Matcher对象,执行匹配所设计的所有状态都驻留在匹配器中。典型调用顺序为:
Pattern p = Pattern.compile("正则表达式"); \\字符串的正则编译成Pattern对象
Matcher m = p.matcher("aaaaab"); \\使用正则对象匹配字符串产生一个Matcher对象
boolean b = m.matches();
阅读全文
0 0
- 【正则表达式】正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 一个让人灵光一闪的数组C++类Array设计,可以此作为范本进行其他的C++类编写
- shell脚本
- JAVA中ListIterator和Iterator详解与辨析
- 将二叉搜索树转换成一个排序的双向链表--中序线索化的变型。
- Spring Cloud微服务(1)之 Spring Boot
- 正则表达式
- 实例探索Java模式之路——策略模式
- people are able to buy the same products anywhere in the world
- 复合井盖功能越来越多样化
- asp完整显示数据代码
- 使用util命名空间定义集合
- LVS同步连接状态信息(IPVS Connection Synchronization)
- linux应用开发基础(一)GCC编译器、动态库、静态库使用
- HDU 2222 Keywords Search(AC自动机)