如何检查字符串是否是速度代码

How can I check if string is velocity code

例如,我有HTML代码

            <table>
     <!-- #if($!item.get('specialPrice') && $!item.get('specialPrice')!= "")-->
     <!-- [if mso]-->
                <tr>
                    <td>
                      Hello world
                    </td>
                </tr>
            </table>

这里我需要删除内容为 <!-- [if mso]--> 的评论,这不是速度和速度代码 <!-- #if($!item.get('specialPrice') && $!item.get('specialPrice')!= "")--> 应该保留

那么问题是如何正确识别速度码?

好吧,我想到的一件事是使用正则表达式将其删除(假设每个速度语句都以 # 或 $ 开头)

例如

var r = "<!-- [^#$].*-->";
var t = "<table>\n<!-- #if($!item.get('specialPrice') && $!item.get('specialPrice')!= \"\")-->\n<!-- [if mso]-->\n<tr>\n<td>\n                      Hello world\n</td>\n</tr>\n</table>";

var c = t.replaceAll(r, "something");
System.out.println(c);

应该输出

<table>
<!-- #if($!item.get('specialPrice') && $!item.get('specialPrice')!= "")-->
something
<tr>
<td>
                      Hello world
</td>
</tr>
</table>