不得不感叹正则的强大之处!
在线Xmind,记录的一点正则脑图
这次记录一个小例子,
var str2 =
`<tbody>
<tr>
<td><p><a id="sogou_99999_1">广州水电费</a></p></td>
<td><p><a id="sogou_99999_2">工程水222电费</a></p></td>
<td><p><a id="sogou_99999_3">水电费ddd通知单</a></p></td>
<td><p><a id="sogou_99999_4">水电费合同</a></p></td>
<td><p><a id="sogou_99999_5">上海水电费</a></p></td>
<td><p><a id="sogou_99999_6">代收水电费</a></p></td>
<td><p><a id="sogou_99999_7">公寓水电费</a></p></td>
<td><p><a id="sogou_99999_8">水电费单</a></p></td>
<td><p><a id="sogou_99999_9">水电费账单</a></p></td>
</tr>
</tbody>`
var re = /(sogou_99999_\d)">(.*?)</g
//sogou_99999_\d先取到所有的ID,用括号括起来是方便取id 不然,默认得到的值是这样sogou_99999_9">水电费账单<
//id之后是">是一样的, 然后取中间任意字符
//.是除回车和换行所有字符
//*是任意字符
//?是贪婪模式出现零次或者一次最多出现一次
//要取里面的值,所以也用括号包起来,方便取值
//最后是<
//当然要加g,是全局匹配
var idAll = [],txtAll = []
str2 = str2.replace(re,function($0,$1,$2){
console.log($0) //匹配的所有值
console.log($1) //第一个小括号的值。所有的ID
console.log($2) //第二个小括号,就是里面的内容
idAll.push($1)
txtAll.push($2)
});
console.log( idAll )
//(9) ["sogou_99999_1", "sogou_99999_2", "sogou_99999_3", "sogou_99999_4", "sogou_99999_5", "sogou_99999_6", "sogou_99999_7", "sogou_99999_8", "sogou_99999_9"]
console.log(txtAll)
//["广州水电费", "工程水222电费", "水电费ddd通知单", "水电费合同", "上海水电费", "代收水电费", "公寓水电费", "水电费单", "水电费账单"]