JAVA Pattern regex
来源:互联网 发布:支票打印软件靠谱吗 编辑:程序博客网 时间:2024/05/22 00:12
- 常用正则表达式
[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(交集)
[a-z&&[^bc]] a 到 z,除了 b 和 c:[ad-z](减去)
[a-z&&[^m-p]] a 到 z,而非 m 到 p:[a-lq-z](减去)
. 任何字符(与行结束符可能匹配也可能不匹配)
\d 数字:[0-9]
\D 非数字: [^0-9]
\s 空白字符:[\t\n\x0B\f\r]
\S 非空白字符:[^\s]
\w 单词字符:[a-zA-Z_0-9]
\W 非单词字符:[^\w]
\p{Lower} 小写字母字符:[a-z]
\p{Upper} 大写字母字符:[A-Z]
X? X,一次或一次也没有
X* X,零次或多次
X+ X,一次或多次
X{n} X,恰好 n 次
X{n,} X,至少 n 次
X{n,m} X,至少 n 次,但是不超过 m 次
2.贪婪匹配与懒惰匹配
考虑这个表达式:a.*b,它将会匹配最长的以a开始,以b结束的字符串。如果用它来搜索aabab的话,它会匹配整个字符串aabab。这被称为贪婪匹配。
有时,我们更需要懒惰匹配,也就是匹配尽可能少的字符。前面给出的限定符都可以被转化为懒惰匹配模式,只要在它后面加上一个问号?。这样.*?就意味着匹配任意数量的重复,但是在能使整个匹配成功的前提下使用最少的重复。
a.*?b匹配最短的,以a开始,以b结束的字符串。如果把它应用于aabab的话,它会匹配aab和ab。
public static void main(String[] args) { String str = "西安市(雁塔区)(长安区)"; String paternStr = ".*(?=\\()"; Pattern pattern = Pattern.compile(paternStr); Matcher matcher = pattern.matcher(str); if (matcher.find()) { System.out.println(matcher.group(0)); } }
上述方法的输出为:西安市(雁塔区)
public static void main(String[] args) { String str = "西安市(雁塔区)(长安区)"; String paternStr = ".*?(?=\\()"; Pattern pattern = Pattern.compile(paternStr); Matcher matcher = pattern.matcher(str); if (matcher.find()) { System.out.println(matcher.group(0)); } }
上述方法输出:西安市
阅读全文
0 0
- java.util.regex.Pattern
- java.util.regex.Pattern
- java.util.regex.Pattern
- java.util.regex.Pattern
- JAVA Pattern regex
- [Java] 字符串验证--java.util.regex.Pattern
- 正则表达式java.util.regex.Pattern
- 字符串验证--java.util.regex.Pattern
- 字符串验证阿~~java.lang.regex.Pattern
- 【待翻译】java.util.regex.Pattern
- java.util.regex.Pattern类使用
- java.util.regex.Pattern类使用
- 正则表达式 java.util.regex Pattern
- java.util.regex.Pattern类使用
- java.util.regex.Pattern找不到eclipse
- java.util.regex.Pattern类使用
- 转:java.util.regex.Pattern类使用举例
- java.lang.regex pattern macher find maches lookingAt
- tp5变量名不存在报错问题解决方案
- (gedit:14333): Gtk-WARNING **: cannot open display: :0.0
- SpringBoot
- python基础 -- 01FTP服务器搭建
- 利用HBuilder将vue项目打包成移动端app
- JAVA Pattern regex
- TX2 CAN通信配置
- setSystemUiVisibility(int visibility)传入的实参类型解释
- Java的数据类型
- OpenCV-Python教程(4、形态学处理)
- 写一个ServiceMain函数
- xcode使用Scheme管理项目
- cocos android 中文转拼音
- V4L2采集YUYV数据—X264编码H264视频实例