1. 程式人生 > >經典有關正則表達式例子

經典有關正則表達式例子

一次 AC body 功能 至少 字符串 數字 個數 換行

有字符串var str=’abc345efgabcab’,請寫出3條JS語句分別實現如下3個功能

(1)去掉字符串中的a、b、c字符,形成結果:’345efg’

(2)將字符串中的數字用中括號括起來,形成結果:’abc[345]efgabcab’

(3)將字符串中的每個數字的值分別乘以2,形成結果:’abc6810efgabcab’

var str = "abc345efgabcab";

str = str.replace(/\[abc\]/g,""); //‘345efg‘

str = str.replace(/(345)/g, "\[$1\]"); //‘abc[345]efgabcab‘

str = str.replace(/\d/g, function(a){ //‘abc6810efgabcab‘

    return 2 * a

});

常見元字符

字符含義
. 查找單個字符,除開換行和行結束符
^ 匹配以xx開頭的字符串(例如^n,匹配以n開頭的字符串)
$ 匹配以xx結尾的字符串(n$)
\b 匹配單詞的邊界(開始或結束)
\B 匹配非單詞的邊界
\w 查找單詞字符(字母、數字、下劃線或漢字)等價範圍[a-zA-Z0-9_]
\W 查找非單詞字符(和\w相反,大寫是取反,後面的類似)
\s 查找任意的空白字符 等價範圍[ \r\n\f\t\v]
\S 查找非空白字符
\d 查找數字 等價範圍[0-9]
\D 查找非數字
\n 查找換行符
\0 匹配空字符

匹配數量:

字符含義
* 匹配0次或者多次(例如n*,匹配包含0個或多個n的字符串)
+ 匹配至少一次 (n+)
? 匹配0次或者一次 (n?)
{n} 匹配重復n次 (x{n})
{n,} 匹配至少重復n次
{n,m} 匹配重復n到m次

經典有關正則表達式例子