首先我們要知道正則表達(dá)式常見的元數(shù)據(jù):
.匹配除換行外所有的字符
*匹配某個元素可以重復(fù)零次或多次
\b匹配單詞的開始和介紹,例如\bhi\b,標(biāo)示只是hi的單詞
\d匹配所有整形數(shù)據(jù)
+表示重復(fù)一次或多次
?重復(fù)零次或一次
\w匹配字母或數(shù)字或下劃線或漢字
\s匹配任意空白字符
^表示以該字符之后的字符開始
$表示以該字符之前的結(jié)束
\W匹配任意不是字母,數(shù)字,下劃線,漢字的字符
\S匹配任意不是空白符的字符
\D匹配任意非數(shù)字的字符
\B匹配不是單詞開頭或結(jié)束的位置
[^x]匹配除了x以外的任意字符
[^aeiou]匹配除了aeiou這幾個字母以外的任意字符
分組
()
(\d)?數(shù)字重復(fù)零次或一次
重復(fù)次數(shù)限定
{5}只能重復(fù)5次
{1,5}重復(fù)1到5次
我們結(jié)合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);
對上面正則表達(dá)式的解釋
找到開始width并且運(yùn)行width開始有空字符,中間是:和浮點(diǎn)數(shù),并且浮點(diǎn)數(shù)只能有一次或零次后以;結(jié)尾,并且;分號后面可以有空字符
這樣當(dāng)replaceAll時會找到滿足正則表達(dá)式的內(nèi)容然后將其替換為想要的內(nèi)容。