问题描述:
html
<#list softTables as softTable> <table style="text-align: center;margin-bottom: 10px;border-collapse:collapse;border:none;" align="center" cellpadding="0" border="0" cellspacing="1"> <tbody> <tr> <td width="136" style="border:solid #000 1px;"> <p style="font-size: 14px;line-height: normal;margin-top: 10px;margin-bottom: 10px;"> ${softTable.title1}</p> </td> <td width="98" style="border:solid #000 1px;"> <p style="font-size: 14px;line-height: normal; margin-top: 10px; margin-bottom: 10px;"> ${softTable.title2}</p> </td> <td width="18" style="border:solid #000 1px;"> <p style="font-size: 14px;line-height: normal; margin-top: 10px; margin-bottom: 10px;"> ${softTable.title3}</p> </td> <td width="97" style="border:solid #000 1px;"> <p style="font-size: 14px;line-height: normal; margin-top: 10px; margin-bottom: 10px;"> ${softTable.title4}</p> </td> <td width="105" style="border:solid #000 1px;"> <p style="font-size: 14px;line-height: normal; margin-top: 10px; margin-bottom: 10px;"> ${softTable.title5}</p> </td> </tr> <#list softTable.tableDetails as tableDetail> <tr> <td width="136" style="border:solid #000 1px;"> <p style="font-size: 14px;line-height: normal; margin-top: 10px; margin-bottom: 10px;"> ${tableDetail.goodsVersion}</p> </td> <td width="98" style="border:solid #000 1px;"> <p style="font-size: 14px;line-height: normal; margin-top: 10px; margin-bottom: 10px;"> ${tableDetail.goodsName}</p> </td> <td width="18" style="border:solid #000 1px;"> <p style="font-size: 14px;line-height: normal; margin-top: 10px; margin-bottom: 10px;"> ${tableDetail.goodsNum}</p> </td> <td width="97" style="border:solid #000 1px;"> <p style="font-size: 14px;line-height: normal; margin-top: 10px; margin-bottom: 10px;"> ¥${tableDetail.goodsPrice}</p> </td> <td width="105" style="border:solid #000 1px;"> <p style="font-size: 14px;line-height: normal; margin-top: 10px; margin-bottom: 10px;"> ${tableDetail.goodsRemark}</p> </td> </tr> </#list> <#list softTable.tableFooters as tableFooter> <tr> <td colspan="2" width="253" style="border:solid #000 1px;"> <p style="font-size: 14px;line-height: normal; margin-top: 10px; margin-bottom: 10px;"> ${tableFooter.totalName}</p> </td> <td colspan="3" width="262" style="border:solid #000 1px;"> <p style="font-size: 14px;line-height: normal; margin-top: 10px; margin-bottom: 10px;"> ¥${tableFooter.softTotalPrice} ${tableFooter.softTotalPriceChinese}</p> </td> </tr> </#list> </tbody> </table> </#list>
需要把
<td width="97" style="border:solid #000 1px;"> <p style="font-size: 14px;line-height: normal; margin-top: 10px; margin-bottom: 10px;"> ${softTable.title4}</p> </td>
以及
<td width="97" style="border:solid #000 1px;"> <p style="font-size: 14px;line-height: normal; margin-top: 10px; margin-bottom: 10px;"> ¥${tableDetail.goodsPrice}</p> </td>
替换成""
然后把<td colspan="3" width="262" 改为 <td colspan="2" width="262"
正则表达式比较复杂.而且容易出错.所以用AI来写.
第一段对话:
现在需要通过核心字符,使用正则表达式提取字符串,以"<td"开头"</td>"结尾 核心字符"${softTable.title4}" 提取出的完整的字符串:
<td width="97" style="border:solid #000 1px;"> <p style="font-size: 14px;line-height: normal; margin-top: 10px; margin-bottom: 10px;"> ${softTable.title4}</p> </td>
灵码给的正则表达式:
String title4Regex = "<td[^>]*>.*?\\$\\{softTable\\.title4\\}.*?</td>";
String goodsPriceRegex = "<td[^>]*>.*?\\$\\{tableDetail\\.goodsPrice\\}.*?</td>";
但是这个正则表达式 实际上有问题,会多匹配很多td
这里有正则表达式编写的工具
https://www.jyshare.com/front-end/854/

我又给灵码提要求
这个表达式 会匹配到 包含{softTable.title4}的\
String goodsPriceRegex = "<td[^>]*width=\"97\"[^>]*>(?:(?!<td)[\\s\\S])*?\\$\\{tableDetail\\.goodsPrice\\}(?:(?!</td>)[\\s\\S])*?</td>"
现在就正常了.

人工智能着实提升了生产力.一起自己查资料,琢磨的话估计要大半天.