做WEB开发的时候经常会遇到批量查找替换某些代码,擅于运用工具会大大提高你的开发效率:)

在这里简单介绍下在DW里用正则查找替换的方法:

问题: 一个页面中有多个标签,形如:value=lang0 value=chang0 value=lang1 value=v2……….

现在 想把给值都加上引号 value=”lang0″ value=”chang0″ value=’lang1″ value=”v2″……….

由于这些东西有很多,单个修改很麻烦,怎么办?

解决办法:使用dw查找替换中的正则表达式功能。

在查找框中输入:bvalue=(w*d)b

在替换框中输入:value=”$1″

OK.问题解决了。

再比如:

问题: <td bgcolor=”#F7F7F7″><div align=”center” style=”font-weight:bold;font-size:12pt”>专家提醒:电磁辐射应该这么防</div></td>

要将上面 代码修改为: <td bgcolor=”#F7F7F7″><h1>专家提醒:电磁辐射应该这么防</h1></td>

查找框中输入: <div align=”center” style=”font-weight:bold;font-size:12pt”>(S*)(s?)(S*)</div>

替换框中输入: <h1>$1$2$3</h1>

就可以了。

分析方法: 在搜索模式的表达式中的括号是必须的,是为了在替换时候引用搜索到的对应模式(或者说,是保留搜索到的那个模式)。

使用正则表达式使搜索字符串中的特定字符和短字符串(如 ?、*、w 和 b)被解释为正则表达式运算符。例如,

the bw*b dog 的搜索与 the black dog 和 the barking dog 都匹配。(请参见正则表达式。)

正则表达式

正则表达式是以文本描述字符组合的模式。在代码搜索中使用它们有助于描述一些概念,例如以“以‘var’开始的行”和“包含数字的属性值”。有关搜索的更多信息,请参见搜索和替换标签和属性

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

字符 匹配 示例
^ 输入或行的起始部分。 ^T 匹配“This good earth”中的“T”,但与“Uncle Tom’s Cabin”中的“T”不匹配
$ 输入或行的结尾部分。 h$ 匹配“teach”中的“h”,但与“teacher”中的“h”不匹配
* 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|0000FF 匹配 bgcolor=”#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_]。 bw* 匹配“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 替换它,可以在由斜杠分隔的日期中交换日和月(因此可以在美国样式日期和欧洲样式日期之间进行转换)。