正则表达式
来源:互联网 发布:java如何打war包 编辑:程序博客网 时间:2024/06/06 02:42
正则表达式
正则表达式是灵活而强大的文本处理工具。量词描述了一个模式吸收输入文本的方式:①贪婪型:贪婪表达式会为所有可能的模式发现尽可能多的匹配;②勉强型:匹配满足满足模式所需的最少字符串;③占有性:当正则表达式被应用于字符串时,它会产生相当多的状态,一边在匹配失败时可以回溯,而“占有的”量词并不保存这些中间状态,因此它们可以防止回溯。它们常常用于防止正则表达式失控,因此可以使正则表达式执行起来更有效。
CharSequence是一个接口
interface CharSequence {
charAt(int i);
length();
subsequence(int start,int end);
toString();
}
多数正则表达式操作都接收CharSequence类型的参数。
Pattern和Matcher
导入java.util.regex,然而static Pattern.compile()方法来翻译你的正则表达式即可,它会根据你的String类型的正则表达式生成一个Pattern对象。然后把想要检索的字符串传入Pattern对象的matcher()方法。matcher()方法会生成一个Matcher对象,他的replaceAll()方法能将所有匹配的部分都替换成你传入的参数。
String s = “khlk”;
Pattern p = Pattern.compile(正则表达式);
Matcher m = p.matcher(s);
While(m.find()) {}
几个方法:
boolean matches();
boolean lookingAt();//判断该字符串的始部分是否能够匹配模式
boolean find();//用来在CharSequence查找多个匹配
boolean find(int start);
find()像迭代器那样前向遍历输入字符串;find(i)接收整数作为参数,该整数表示字符串中字符中的位置,并以其作为搜索的起点。
组(Group)
组是用括号划分的正则表达式,可以根据组的编号来引用某个组。
A(B(C))D中三个组:组0是ABCD,组1是BC,组2是C
Matcher对象的方法:
Public intgroupCount()返回该匹配器中模式中的分组数目(不包括0)
Public String group()返回前一次匹配操作的第0组(整个匹配)
Public String group(int i)返回前一次匹配操作期间指定的组号,如果匹配成功,但是指定的组没有匹配输入字符串的任何部分,则返回null
Public intstart(int group)返回在前一次匹配操作中寻找的组的起始索引。
Public int end(intgroup)返回在前一次匹配操作中寻找的组的最后一个字符索引加1的值。
匹配操作失败之后调用上述最后两个方法将会产生IIIegalStateException。
- 【正则表达式】正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- libgdx常用网站
- [leetcode 70]Climbing Stairs
- AVL树(模板题)—— POJ 3481 Double Queue
- java多线程3--synchronized
- 算法设计与分析:第二章 递归 2.1计数排序之统计数对
- 正则表达式
- KMP模式匹配算法
- Spring源码学习-3.IoC.资源的加载与注册
- 算法设计与分析:第二章 递归 2.2买商品
- C#隐私信息(银行账户,身份证号码,名字)中间部分特殊字符替换(*)
- Argument 'xxx' is not a function, got undefined,初学Angular的第一个坑
- 公平锁 轻量锁
- error: WatchKit App doesn't contain any WatchKit Extensions whose WKAppBundleIdentifier matches "***
- 初学C语言