需要一个正则表达式来匹配多个类中的一个

时间:2014-04-10 06:26:22

标签: html css regex

我升级了我的所有网站并重新设计了它们,以便所有网址都默认为小写,这迫使我也将所有图片名称和路径更改为小写。我使用的正则表达式完成了这项工作。不幸的是,他们也改变了很多其他的东西。

例如,这是典型的div之前的样子:

<div class="Cool R P Wx500">

这就是他们现在的样子:

<div class="cool r p wx500">

我强调了一些,因为一些div(和其他标签)被改变而其他人没有改变。

所以我想找一个可以帮助我搜索特定课程的正则表达式 - 例如酷,R或Wx500。这有点棘手,因为1)我的课程并不总是以特定的顺序列出,而且某些课程名称由一个字母组成(例如B = border而R =右边的浮动)。

所以我想我能够做的就是搜索包含课程&#34; Cool,&#34;然后搜索包含类&#34; R。&#34;的div。如果我可以使我的搜索区分大小写也会有所帮助。例如,我可能需要使用R类搜索div - 但仅限于将其更改为小写的情况(例如[div class =&#34; cool r&#34;]

能做到吗? Dreamweaver有一个非常好的正则表达式实用程序,但据我所知,它不能从一个系列中选择一个类。我在Mac上工作,Dreamweaver和TextWrangler是我的主要文本编辑。

2 个答案:

答案 0 :(得分:1)

您可以使用以下

(class=".*?\b)r(\b.*?")

而不是r使用您要搜索的类并替换为$1new$2,其中new是您想要的新类名。

说明:

  • .*?非贪婪匹配任何角色。
  • \b匹配字边界("计为边界)。
  • ()组,第一部分将在第1组($ 1),第二部分在第2组($ 2)

例如,以下内容将匹配:

<div class="r">
<div class="r cool p wx500">
<div class="cool r p wx500">
<div class="cool c wx300 r">

但以下内容不匹配:

<div class="runcool c wx300">
<div class="uncool cr wrx300">
<div class="uncool c wx300r">
<div class="R">

答案 1 :(得分:0)

如果Dreamweaver不支持外观(我没有副本可以测试),你也应该可以使用它:

使用cool作为示例类

查找(<div ([^>]+ )?class="([^"]+ )?)cool( |")

替换为$1Cool$4

由于$1 / $4表示&#34;所有内容都与括号中的第一个/第四个子表达式相匹配&#34;。