首先我们要知道正则表达式常见的元数据:
.匹配除换行外所有的字符
*匹配某个元素可以重复零次或多次
\b匹配单词的开始和介绍,例如\bhi\b,标示只是hi的单词
\d匹配所有整形数据
+表示重复一次或多次
?重复零次或一次
\w匹配字母或数字或下划线或汉字
\s匹配任意空白字符
^表示以该字符之后的字符开始
$表示以该字符之前的结束
\W匹配任意不是字母,数字,下划线,汉字的字符
\S匹配任意不是空白符的字符
\D匹配任意非数字的字符
\B匹配不是单词开头或结束的位置
[^x]匹配除了x以外的任意字符
[^aeiou]匹配除了aeiou这几个字母以外的任意字符
分组
()
(\d)?数字重复零次或一次
重复次数限定
{5}只能重复5次
{1,5}重复1到5次
我们结合Java的字符串的String中的replaceAll来举例。
如:
String a= "class:test;width:50.6909;widths:50.7;height:60;biness:5;dark:0.8;";
我们想要将width:50;替换为width:60;
String regx = "\\s*width\\s*:\\s*(\\d+s*\\.\\s*\\d+)?\\s*;\\s*";
a = a.replaceAll(regx,"width:60;");
System.out.println(a);
对上面正则表达式的解释
找到开始width并且运行width开始有空字符,中间是:和浮点数,并且浮点数只能有一次或零次后以;结尾,并且;分号后面可以有空字符
这样当replaceAll时会找到满足正则表达式的内容然后将其替换为想要的内容。