我想编写一个正则表达式来在Dreamweaver中进行一些替换。我需要html中<abbr>
标记的正则表达式。
例如,在我的页面中将显示以下文字:
Photo: NASA
我希望它成为:
Photo: <abbr title="National Aeronautics and Space Administration">NASA</abbr>
请注意,我的HTML中“NASA”一词的某些实例已被<abbr>
标记所包围。如果是这种情况,请不要在其周围添加额外的<abbr>
标记。
答案 0 :(得分:1)
搜索:NASA
替换为:
<abbr title="National Aeronautics and Space Administration">NASA</abbr>
然后搜索:
<abbr title="National Aeronautics and Space Administration"><abbr title="National Aeronautics and Space Administration">NASA</abbr></abbr>
替换为:
<abbr title="National Aeronautics and Space Administration">NASA</abbr>
多田! =)
答案 1 :(得分:0)
我遗漏了外观。我不确定Dreamweaver支持哪种类型的正则表达式。
尝试使用以下正则表达式:
NASA(?!( *</abbr>)|(\.\w+)|("))
它不会匹配任何NASA实例:
</abbr>
之间的空格如何,</abbr>
.
和其他字符,例如nasa.gov被视为无效。/
,例如test.gov/nasa/被视为无效。"
无效。regexp将与NASA匹配,如下所示:
"This NASA is surrounded by quotes"
但不会在引号中唯一的内容:
"NASA"
。 。 。你可以在这里看到趋势,在必要时加上其他“或”陈述。
我用以下字符串测试了它:
这句话以NASA结尾。这个正则表达式将与NASA合作,但不是 使用网址,例如nasa.gov/test/nasa/page.html。它无法使用 &LT;缩写&GT; NASA&LT; /简称&GT;因为它被&lt; abbr&gt;所包围 标签。 “这个美国宇航局被引号包围”,但将会是 匹配,因为它的格式不像这样的“NASA”。
然后您可以使用该正则表达式进行查找,并替换为:
<abbr title="National Aeronautics and Space Administration">NASA</abbr>
注意:引号是我无法解决的限制,或者我不知道如何轻松绕行。我建议如果你必须为许多文档执行此操作,使用某种类型的脚本语言(例如Python)并避免使用一个大型正则表达式并将其分解为逻辑语句,但这完全是另一个问题。
祝你好运!
答案 2 :(得分:0)
如果支持lookbehinds,这很简单。
搜索:
(?<!>)NASA
替换:
<abbr title="National Aeronautics and Space Administration">NASA</abbr>
这会找到没有NASA
前缀的>
个条目。因此,NASA
将匹配,>NASA
将不匹配。