捕獲帶有屬性的標簽。
var html = '<b class="hello">Hello</b><i>world</i>'; var tag = /<(\w+)([^>]*)>(.*?)<\/\1>/g;
< 第一部分b 空格 第二部分class > 第三部分Hello 第四部分代表第一部分b g為全局匹配如果你不帶g,在正則過程中,字符串是從左至右匹配的,如果匹配成功就不再繼續向右匹配了,如果你帶g,它會重頭到尾的把正確匹配的字符串挑選出來 var match = tag.exec(html); match[1] // "b" match[2] // " class="hello"" match[3] // "Hello" match = tag.exec(html); match[1] // "i" match[2] // "" match[3] // "world"
正則表達式(.*?)惰性匹配(終於TM的搞懂了)
沒什么可說的看這兒就行了,,特別是最后一條。
1、. 匹配任意除換行符“\n”外的字符;
2、*表示匹配前一個字符0次或無限次;
3、+或*后跟?表示非貪婪匹配,即盡可能少的匹配,如*?重復任意次,但盡可能少重復;
4、 .*? 表示匹配任意數量的重復,但是在能使整個匹配成功的前提下使用最少的重復。
如:a.*?b匹配最短的,以a開始,以b結束的字符串。如果把它應用於aabab的話,它會匹配aab和ab。