0

这是我正在使用的示例文本。我正在使用 Coda 进行查找和替换...

<td width="20%"><div > Item #</div></td>
<td width="20%"><div > Pole Tip</div></td>
<td width="20%"><div > Length</div></td>
<td width="20%"><div > Test Weight (lbs.)</div></td>
<td width="20%"><div > Price</div></td>

我想摆脱标记 td 内文本的 div 标签。

例如...我想改变这个:

<td width="20%"><div > Item #</div></td>

对此:

<td width="20%">Item #</td>

到目前为止,我将其作为正则表达式:

<div >[\s\w\(\)#]*</div>

但是,这与我的示例文本中的所有上述内容相匹配,除了:

<td width="20%"><div > Test Weight (lbs.)</div></td>

在我的正则表达式中,我什至尝试添加 ( 和 ) ...我做错了什么?

4

2 回答 2

1

作为对 Andy 的回复,我同意格式良好的标记的数据解析应该保留给 DOM 导航工具。XML 肯定,或者 HTML>XML 转换器是好的。我不知道 Miles 正在使用什么,但我经常使用格式错误的 HTML,以至于标记解析器无法解析它。

在我的一些关于文档解析的 Regex 教程中,我讨论了 Regex Trim 模式,它只是零或多个空格 {\s*}。尽管您可能会回避它,因为它为 Regex 模式增加了一点点长度,但效率损失几乎为零。话虽如此...

(<td[^>]*>)\s*<div[^>]*>\s*((?:[^<]*(?(?!</div>\s*</td>)<))*)\s*</div>\s*(</td>)

将其替换为 $1$2$3 即可获胜,并获得干净的结果。当然,您可以根据需要替换或删除任意数量的修剪 (\s*),如果我正在解析文档或格式错误的标记,这只是个人喜好。

于 2012-11-28T18:58:49.513 回答
0

那是因为你错过了.这很好用

<div >[\s\w\(\)#.]*</div>
于 2012-11-28T05:52:16.147 回答