【发布时间】:2009-05-14 09:14:23
【问题描述】:
我有一堆像这样行的html:
<a href="#" rel="this is a test">
我需要用下划线替换 rel 属性中的空格,但我是一个正则表达式新手!
我正在使用 Textmate。
谁能帮帮我?
/雅各布
【问题讨论】:
-
这对于只允许搜索和替换的文本编辑器来说并不容易。这是因为您需要一个模式来找到正确的位置(rel 属性),然后您需要一个模式来替换。
-
我希望在另一个正则表达式中使用正则表达式的解决方案(如果这有意义的话)。因为你是对的,所以这场比赛是一种两遍解决方案。首先找到字符串: (rel=".*") 然后用 (_) 替换所有空格。也许这是不可能的?
-
@Jakob Madsen 您对递归的渴望是完全正确的,并且除非使用某些 Perl 扩展,正则表达式不能递归。这是正则表达式不擅长解析 HTML 和 XML 的原因之一。你需要一个解析器。
-
嗯,我错过了你使用文本编辑器,那么你真正的选择是找到一个插件,让你 DOM 访问你正在处理的文档,或者编写一个快速脚本来做到这一点对你来说(可能是更好的选择,因为它很容易重复)
-
只要你了解你的用户并且支持 JavaScript,我会用 JavaScript 来做。
标签: html regex replace textmate