在Dreamweaver中搜索和替换的正则表达式

时间:2012-07-23 16:07:48

标签: html regex dreamweaver

我想编写一个正则表达式来在Dreamweaver中进行一些替换。我需要html中<abbr>标记的正则表达式。

例如,在我的页面中将显示以下文字:

Photo: NASA 

我希望它成为:

Photo: <abbr title="National Aeronautics and Space Administration">NASA</abbr> 

请注意,我的HTML中“NASA”一词的某些实例已被<abbr>标记所包围。如果是这种情况,请不要在其周围添加额外的<abbr>标记。

3 个答案:

答案 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实例:

    无论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将不匹配。