首先我們要知道正則表達式常見的元數據:
.匹配除換行外所有的字符
*匹配某個元素可以重復零次或多次
\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時會找到滿足正則表達式的內容然后將其替換為想要的內容。