正则表达式不匹配,需要帮助搞清楚原因

时间:2017-06-12 14:39:25

标签: regex

正则表达式是:

<td class="description">(?<lineItem>[\w/ -]+)<\/td>\s+<td class="descriptionFormat">(?:[\w\$%\.,()\/ ]*)</td>\s+<td class="amount">[ ]*(?<lineValue>-?\$(?:\d{1,3},?)+\.\d{2})</td>

启用忽略大小写,多行和单行。

匹配的语句示例为:

<td class="description">Fuel Cost Adjustment</td>
<td class="descriptionFormat">18,640 KWH at -$0.00044</td>
<td class="amount">$-1.36</td>

但是这个不匹配:

<td class="description">Fuel Cost Adjustment</td>
<td class="descriptionFormat">18,640 KWH at -$0.00044 (25/30 Days)</td>
<td class="amount">$-6.84</td>

如果有人能告诉我什么是错的,我真的很感激。

谢谢!

1 个答案:

答案 0 :(得分:0)

(<td class="description">)(?<lineItem>[\w/ -]+)<\/td>\s*<td class="descriptionFormat">(?:[\w\$%\-\.,\(\)\/ ]*)\s*</td>\s*<td class="amount">\s*(?<lineValue>-?\$(-|)(?:\d{1,3},?)+\.\d{2})</td>

应该匹配,但是您可能会考虑更新这一点,因为使用正则表达式进行html解析相当棘手;除非你100%确定inputdata不会以任何方式改变