java成神之——正则表达式基本使用
Posted 叶家伟的博客
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java成神之——正则表达式基本使用相关的知识,希望对你有一定的参考价值。
正则表达式
常用匹配规则
[abc] abc其中一个
[^abc] abc之外的一个
[a-z] a和z之间的一个
. 表示任意字符
d 表示一个数字
D 非数字
w 表示a-zA-Z0-9_
W 非a-zA-Z0-9_
^ 开头
$ 结尾
英文单词边界
? 一次或者0次
* 零次或者多次
+ 一次或者多次
{n} 出现制定n次
{n,} 至少n次
{n,m} >=n <=m 次
基本使用
正则结构
(d{3})-(d{3})-(d{4})
^-----^ ^-----^ ^-----^
组 1 组 2 组 3
Pattern phonePattern = Pattern.compile("(\d{3})-(\d{3})-(\d{4})");
Matcher phoneMatcher = phonePattern.matcher("abcd800-555-1234wxyz");
phoneMatcher.find(); // 查找一次 true
phoneMatcher.group(0); // 800-555-1234
phoneMatcher.group(1); // 800
标记符的使用
常用标记符
DOTALL 表示.可以代表任意字符包括行终止符,简写?s
CASE_INSENSITIVE 表示不区分大小写,简写?i
Pattern pattern = Pattern.compile("foo.", Pattern.CASE_INSENSITIVE | Pattern.DOTALL);
或者
Pattern pattern = Pattern.compile("(?si)foo.");
pattern.matcher("FOO
").matches(); // true
部分正则标记
Pattern pattern = Pattern.compile("^\[(a)$");
匹配字符串中有部分特殊的需要转义的字符,除了添加双反斜线以外,还可以如下操作
Pattern pattern = Pattern.compile("^\Q[\E(a)$");
Q 表示起始,E 表示结束
或者
Pattern pattern = Pattern.compile(Pattern.quote("[") + "(a)$");
正则表达式在字符串方法中的使用
matches方法:判断字符串是否满足正则匹配
String str = "abc";
boolean b = str.matches("[a].*");
split方法:根据正则匹配的规则分隔字符串
String str = "abc";
String[] arr = str.split("[b]"); // [a, c]
replaceAll方法:将匹配的字符串替换成其他字符
String str = "abc";
String str1 = str.replaceAll("[\w]", "1"); // 111
结语
本文章是java成神的系列文章之一
如果你想知道,但是本文没有的,请下方留言
我会第一时间总结出来并发布填充到本文
以上是关于java成神之——正则表达式基本使用的主要内容,如果未能解决你的问题,请参考以下文章