正则表达式:是用来记录文本规则的代码
\b:代表着单词的开头或结尾,也是单词的分级处
. :匹配除了换行符以为的任意字符
* :代表的是数量,指的是"*"号前面内容可以连续重复使用任意次以使整个表达式得到匹配
. * :表示任意数量的不包含换行的字符
\bhi\b.*\bLucy\b 匹配一个单词hi,然后是任意字符(但不能换行),最后一个单词是Lucy这个单词
\d:匹配一个数字
0\d\d-\d\d 匹配以0开头,后面接2个数字,在接-,在接2个数字 可以写成0\d{2}-\d{2}
\ba\w*\b :匹配以字母a开头的单词 详解是 显示以某个单词开始处(\b),然后是任意数量的字母或数字(\w*),最后是单词结束处(\b)
\b\w{6}\b :匹配刚好6个字符的单词
元字符
常用的元字符
. 匹配除了换行以外的任意字符
\w 匹配字母或数字或下划线或汉字
\s 匹配任意的空白符
\d 匹配数字
\b 匹配单词的开始或结束
^ 匹配字符串的开始
$ 匹配字符串的结束
常用的限定字符
* 重复零次或更多次
+ 重复一次或更多次
? 重复零次或一次
{n} 重复n次
{n,}重复n次或更多次
{m,n}重复m到n次
windows\d+ : 匹配windows后面跟1个或更多数字
^ \w+ :匹配一行的第一个单词(或整个字符串的第一个单词,具体匹配那个意思得看选项设置)
java正则
//创建一个匹配模式(模板)
Pattern pattern=Pattern.compile("\\d");
//得到pattern的字符串形式,即"\\d"
String p=pattern.pattern();
//用改匹配模式来分割
String [] str=pattern.split("a1b2c3");
//得到一个匹配动作(执行匹配的对象)
Matcher m=pattern.matcher("a1b2c3");
//执行匹配动作;只有整个字符串都匹配了才返回true
boolean flag=m.matches();
//跳过得到Matcher对象,一步执行方式:
boolean f1=Pattern.matches("\\d", "a1b2c3");//类调用静态方法
boolean f2=pattern.matches("\\d", "a1b2c3");//对象调用静态方法
m.lookingAt();//对前面的字符串进行匹配,只有匹配到的字符串在最前面才返回true
m.find();//对字符串进行匹配,匹配到的字符串可以在任何位置; 必须先这个find,才能执行下面函数
m.start();//返回匹配到的子字符串在字符串中的索引位置.
m.end();//返回匹配到的子字符串最后一个字母的后面那个字符的索引.
m.group();//返回匹配到的子字符串
Matcher matcher=Pattern.compile("\\d+").matcher("aaa2223bb");
matcher.find();//匹配2223 ,必须先这个find,才能执行下面函数
matcher.start();//返回3
matcher.end();//返回7,返回的是2223后的索引号
matcher.group();//返回2223
重点参考:
https://blog.csdn.net/qq_18298439/article/details/88974940