java成神之——正则表达式基本使用
2021-05-15 21:30
标签:大小 结束 替换 str 基本使用 个数 [] 数字 判断字符串 java成神之——正则表达式基本使用 标签:大小 结束 替换 str 基本使用 个数 [] 数字 判断字符串 原文地址:https://www.cnblogs.com/ye-hcj/p/9750050.html
正则表达式
常用匹配规则
[abc] abc其中一个
[^abc] abc之外的一个
[a-z] a和z之间的一个
. 表示任意字符
\d 表示一个数字
\D 非数字
\w 表示a-zA-Z0-9_
\W 非a-zA-Z0-9_
^ 开头
$ 结尾
\b 英文单词边界
? 一次或者0次
* 零次或者多次
+ 一次或者多次
{n} 出现制定n次
{n,} 至少n次
{n,m} >=n
基本使用
正则结构
(\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\n").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成神的系列文章之一
如果你想知道,但是本文没有的,请下方留言
我会第一时间总结出来并发布填充到本文