Dreamweaver中的正则表达式

编辑源代码的时候,经常会用到正则表达式(特别是清理别人的代码的时候)来搜索替换。但是在我用做网页设计的主工具的 Dreamweaver  里,我却一直用不好它的正则表达式,不管是查找还是替换,经常都是折腾半天把我搞郁闷了。

今天在 百度知道 上给人回答问题的时候,遇到一个要做复杂替换的问题,而且提问者明确说是在 Dreamweaver 里面做。我终于不懒了一次,上 adobe 的网站上查了一下。把 Dreamweaver 里面的正则表达式部分好好看了一遍。全部内容如下:

下表列出了在正则表达式中使用的特殊字符、其含义和用法示例。若要搜索包含该表中某一特殊字符的文本,请在特殊字符前面附加一个反斜杠,令其转义。例如,若要在 some conditions apply* 短语中搜索实际的星号,您的搜索模式应类似于:apply\*。如果您没有令星号转义,您将找到“apply”的所有匹配项(以及“appl”、“applyy”和“applyyy”的所有匹配项),而不只是后面跟有星号的那些匹配项。

字符

匹配

示例

^

输入或行的起始部分。

^T 与“This good earth”中的“T”匹配,但是与“Uncle Tom’s Cabin”无匹配内容

$

输入或行的结尾部分。

h$ 与“teach”中的“h”匹配,但是与“teacher”无匹配内容

*

0 个或多个前置字符。

um* 与“rum”中的“um”、“yummy”中的“umm”和“huge”中的“u”匹配

+

1 个或多个前置字符。

um+ 与“rum”中的“um”和“yummy”中的“umm”匹配,但是和“huge”无匹配内容

?

前置字符最多出现一次(即,指示前置字符是可选的)。

st?on 与“Johnson”中的“son”和“Johnston”中的“ston”匹配,但是与“Appleton”或“tension”无匹配内容

.

除换行符外的任何单字符。

.an 与“bran muffins can be tasty”短语中的“ran”和“can”匹配

x|y

x 或 y。

FF0000|0000FFbgcolor="#FF0000" 中的“FF0000”和 font color="#0000FF" 中的“0000FF”匹配

{n}

恰好 n 个前置字符。

o{2} 与“loom”中的“oo”和“mooooo”中的前两个字母 o 匹配,但是与“money”无匹配内容

{n,m}

至少 n 个、至多 m 个前置字符。

F{2,4} 与“#FF0000”中的“FF”和“#FFFFFF”中的前四个字母 F 匹配

[abc]

用括号括起来的字符中的任何一个字符。用连字符指定某一范围的字符(例如,[a-f] 等效于 [abcdef])。

[e-g] 与“bed”中的“e”、“folly”中的“f”和“guard”中的“g”匹配

[^abc]

未在括号中括起来的任何字符。用连字符指定某一范围的字符(例如,[^a-f] 等效于[^abcdef])。

[^aeiou] 最初与“orange”中的“r”、“book”中的“b”和“eek!”中的“k”匹配

\b

词边界(例如空格或回车符)。

\bb 与“book”中的“b”匹配,但是与“goober”或“snob”无匹配内容

\B

词边界之外的任何内容。

\Bb 与“goober”中的“b”匹配,但是与“book”无匹配内容

\d

任何数字字符。等效于 [0-9]。

\d 与“C3PO”中的“3”和“apartment 2G”中的“2”匹配

\D

任何非数字字符。等效于 [^0-9]。

\D 与“900S”中的“S”和“Q45”中的“Q”匹配

\f

换页符。

 

\n

换行符。

 

\r

回车符。

 

\s

任何单个空白字符,包括空格、制表符、换页符或换行符。

\sbook 与“blue book”中的“book”匹配,但是与“notebook”无匹配内容

\S

任何单个非空白字符。

\Sbook 与“notebook”中的“book”匹配,但是与“blue book”无匹配内容

\t

制表符。

 

\w

任何字母数字字符,包括下划线。等效于 [A-Za-z0-9_]。

b\w* 与“the barking dog”中的“barking”以及“the big black dog”中的“big”和“black”匹配

\W

任何非字母数字字符。等效于 [^A-Za-z0-9_]。

\W 与“Jake&Mattie”中的“&”和“100%”中的“%”匹配

Ctrl+Enter 或 Shift+Enter (Windows)、或者 Ctrl+Return 或 Shift+Return 或 Command+ Return (Macintosh)

回车符。确保如果没有使用正则表达式,则在搜索时取消对“忽略空白差别”的选择。请注意,该字符是特定字符,而不是一般意义上的换行符;例如,它并不是 <br> 标签或 <p> 标签。回车符在“设计”视图中显示为空格而不是换行符。

 

使用括号在正则表达式内分隔出以后要引用的分组。然后在“替换”域中使用 $1、$2、$3 等来引用第一个、第二个、第三个和更后面的括号分组。

注: 在“查找内容”框中使用 \1、\2、\3 等(而不是 $1、$2、$3)来引用正则表达式中更早的括号分组。

例如,通过搜索 (\d+)\/(\d+)\/(\d+) 并用 $2/$1/$3 替换它,可以在由斜杠分隔的日期中交换日和月(因此可以在美国样式日期和欧洲样式日期之间进行转换)。