Regex 正则表达式不匹配,需要帮助找出原因吗

Regex 正则表达式不匹配,需要帮助找出原因吗,regex,Regex,正则表达式是: <td class="description">(?<lineItem>[\w/ -]+)<\/td>\s+<td class="descriptionFormat">(?:[\w\$%\.,()\/ ]*)</td>\s+<td class="amount">[ ]*(?<lineValue>-?\$(?:\d{1,3},?)+\.\d{2})</td> (?[\w/-]+)\s+

正则表达式是:

<td class="description">(?<lineItem>[\w/ -]+)<\/td>\s+<td class="descriptionFormat">(?:[\w\$%\.,()\/ ]*)</td>\s+<td class="amount">[ ]*(?<lineValue>-?\$(?:\d{1,3},?)+\.\d{2})</td>
(?[\w/-]+)\s+(?:[\w\$%\,()\/]*)\s+[]*(?-?\$(?:\d{1,3},)+\.\d{2})
已启用忽略大小写、多行和单行

匹配的语句示例如下:

<td class="description">Fuel Cost Adjustment</td>
<td class="descriptionFormat">18,640 KWH at -$0.00044</td>
<td class="amount">$-1.36</td>
燃油成本调整
18640千瓦时-0.00044美元
$-1.36
但这一个不匹配:

<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>
燃油成本调整
在-0.00044美元(25/30天)条件下的18640 KWH
$-6.84
如果有人能告诉我出了什么问题,我将不胜感激

谢谢大家!

(?[\w/-]+)\s*(?:[\w\$%\-\,\(\)\/]*)\s*\s*(?-?\$(-)(?:\d{1,3},)+\。\d{2})
(<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%确定输入数据不会以任何方式更改,否则您的正则表达式中有一些未替换的

,而不是
,这是一个打字错误吗?我不确定,因为我继承了这段代码。它正在生产中,不会经常损坏,所以我认为它是安全的?我会玩的,看看它是否有帮助!
[\w/-]
中的
/
也没有转义。它应该是
[\w\/-]
。但是原来的正则表达式很奇怪:
\s+
变成了
[]*
他觉得
*
会做得更好,但是去掉了
\s
。非常感谢。初步测试似乎通过了!如果是HTML格式的输入数据,则不应更改。这已经持续了一年左右。我知道正则表达式和HTML是一个可怕的选择,但是…我得到了一个柠檬!