正则表达式 - 如何提取落在指定ID上的数字?

时间:2012-06-01 16:34:23

标签: regex jmeter

我正在尝试提取出现在我正在喂食的ID的行上的数字“1”(即12072)。

过去2个小时我一直试图让这个正则表达式工作但我不知所措。到目前为止我已经

12072.*?(\d+)(?!.*\d) 

但这会从12072到1提取我的所有内容。这是文字:

<td id="12072" scope="#999999" bgcolor="#999999" style="width: 65; color:#999999" align="center"  onclick="DaySelect(this)" title="">1</td>
<td id="12073" scope="#999999" bgcolor="#999999" style="width: 65; color:#999999" align="center"  onclick="DaySelect(this)" title="">1</td>

如何匹配只是指定ID行末尾的数字1,肯定有办法做到这一点?

帮助将受到高度赞赏。

3 个答案:

答案 0 :(得分:3)

您的比赛将在第1组

"12072"[^>]*>(\d+)

这是一个解释

Match the characters “12073” literally «12073»
Match any character that is NOT a “>” «[^>]*»
   Between zero and unlimited times, as many times as possible, giving back as needed (greedy) «*»
Match the character “>” literally «>»
Match the regular expression below and capture its match into backreference number 1 «(\d+)»
   Match a single digit 0..9 «\d+»
      Between one and unlimited times, as many times as possible, giving back as needed (greedy) «+»

答案 1 :(得分:1)

"12072"[^>]+\>([^\<])

如果您正在搜索120,则会包含引号。如果没有引号,则会匹配两行。

还获取标签的所有文本内容,坚果只是数字。

&LT;和&gt;可能不需要在jmeter中进行转义。如果没有,请删除前导斜杠。

答案 2 :(得分:1)

您可以使用xpath查询(例如

)尝试更好XPath Extractor
//td[@id='${id}']/text()

其中${id}是jmeter变量设置为您需要的值(例如12072),或者只是

//td[@id='12072']/text()

如果您不需要参数化。

注意:确保在XPath Extractor的控制面板上检查Use Tidy (tolerant parser)选项 - 使用xpath处理html响应时需要。