0

我正在使用 powerGrep 来查找这些实例:

区块 1:

<td class="danish">kat
<?php audioButton("../../audio/words/dog","dog");?></td>

但我的文件中也有这些实例:

区块 2

<td class="danish">kat</td>
<td><?php audioButton("../../audio/words/dog","dog");?></td>

我只想找到 BLOCK 1,而不是 BLOCK 2。

我试过使用(?!),如

.*<td class(.*?)>(.*)(?!</td>)
.*<\?php audioButton\("(.*)/.*",".*"\);.*\?></td> 

我可以以某种方式</td>从搜索中排除标签,从而忽略 BLOCK 2 吗?

4

1 回答 1

1

我不确定您为什么真的只想匹配第一个单元格标记,但要执行此操作,您可以尝试:

<td[^>]*>\s*(?:.(?!</td>))+\s*<\?php audioButton\("[^"]*/(.+?)","(.*?)"\);.*?\?>.*?</td>g标志。

看到它在这里工作:https ://regex101.com/r/tI4rL4/1

[编辑]

您还可以在此处查看dogto的替换cathttps ://regex101.com/r/tI4rL4/2

它可能并不完美,因为这个问题有点太模糊了,但它确实有效。如果您需要完善或调整或需要一些解释,您可以问我!

于 2016-09-13T03:35:05.153 回答