新人学正则表达式,请教问题

Really_余生
  • 4
新手上路,请多包涵

382b0e55b319ebc4c71301f58426cffc1e171608.jpg

如何用正则表达式只获取里面的:中国式A123c和16级。这两个数据

代码如下:

<tr style="background-color: rgb(208, 215, 231);">
               <td align="center">1</td>
               <td align="center"><a href="/vul/profile/uid/2640776" class="loading_userpro" ajax-href="/user/showuserpro/uid/2640776">中国式A123c</a>
               </td>

               <td align="center">16级</td>
                <td align="center"> 无名团伙 </td>

</tr>
回复
阅读 2.3k
3 个回答
sofichael
  • 665

如果说针对

这段html固定不变的话,不用正则表达也可,要拿第2,3列的数据使用
$('tr td')[1].value();//$('tr td')需要你自己去精确定位
$('tr td')[2].value();
  1. 正则

">([\s\S]*?)</a></td>
">中国</a></td>

"center">([\s\S]*?)</td>
<td align="center"> 无名团伙 </td>

题主你的要求还真是奇怪,那我就满足你这个奇怪的要求好了。

首先获取 <td> 标签最内层的文字:

var str = '<tr style="background-color: rgb(208, 215, 231);"><td align="center">1</td><td align="center"><a href="/vul/profile/uid/2640776" class="loading_userpro" ajax-href="/user/showuserpro/uid/2640776">中国式A123c</a></td><td align="center">16级</td><td align="center"> 无名团伙 </td></tr>';

var reg = /<td(?: [^>]*)>(?:<[^>]*>)*([^<]*)(?:<\/[^>]*>)*<\/td>/gm;
var texts = [];
var result = null;

while(result = reg.exec(str)) {
    texts.push(result[1]);
}

console.log(texts); // ["1", "中国式A123c", "16级", " 无名团伙 "]

这样题主想要哪个都可以啦!

宣传栏