我正在尝试查找about
文字和宽度值(所以:50%
)。要使用正则表达式选择50%
,我必须在正则表达式中添加width="
。因此,width="\d{2}%
会选择width="50%
,但我需要在第一个中仅选择50%
。
在第二个中,我必须选择(查找)仅about
文字而不是<td>about
。
<tr>
<td width="50%">about</td>
答案 0 :(得分:4)
你会发现使用正则表达式解析HTML几乎是不可能的。
但基本的reg exps将是:
var reWidth = /width="(\d{1,3}%)"/i;
var reCellText = /<td[^>]?>([^<]*)/i;
[编辑]
根据您的评论猜测,您不了解捕获组。
var str = '<td width="25%">';
var myMatch = str.match(reWidth);
if(myMatch){
alert( myMatch[1] );
}
答案 1 :(得分:3)
我认为你正在寻找外观,但不幸的是 Javascript不支持外观。
这看起来像
(?<=width=")\d+
并且只匹配数字。
我认为你应该更多地解释你想要实现的目标(为什么要这样做)以获得适当的答案。我不确定正则表达式是否是这里的解决方案。
答案 2 :(得分:1)
满足您的两项要求。用grep测试:
kent$ echo '<td width="50%">about</td>'|grep -oP '(?<=width=")\d+%|(?<=>)[^<>]*(?=<)'
50%
about
(?<=width=")\d+% ->%number after width="
| ->or
(?<=>)[^<>]*(?=<) -> anything(besides < and >) between > and <