网络营销电子商务研究中心  
How to buy the best prescription safety glasses in Canada? Let's study!
Go Back   网络营销电子商务研究中心 > 网站设计 > Dreamweaver
User Name
Password
 
FAQ Members List Calendar Cheap Glasses

Reply
 
Thread Tools Display Modes
  #1   IP: 49.87.40.65
Old 2014-04-12, 09:48 PM
Mabank Mabank is offline
初级会员
 
Join Date: 2008-11-26
Posts: 1
Mabank 现在声名狼藉
Default Dreamweaver高级查找替换方法 使用正则表达式

不知大家有没试过这样的经历:想替换一些有固定规律文本,但又不是想全部替换掉原来的内容。只是想替换掉其中的一部分,而保留一部分。例如,文本“ aaaDSSDaabbbbbbbbbbbbbbXXX”,我只是想把所有包含这个文本的页面替换成“原来的文本”,即保留原来区域的内容。以前遇到过这样的情况,不知道该怎么做,上网搜过,也没搜到。今天试了一下,行了。所以就把它写出来,分享一下,希望能有点作用。

没错,就是用正则表达式。但一般的文本替换工具不支持正则表达式的查找与替换。手动改的话,如果页面少的话还勉强,但如果是50个甚至更多的页面都要改呢?呵,,吐血行了。幸好,Dreamweaver给我们提供了强大正则查找替换功能。它不仅能批量替换普通文本,而且还能灵活应用正则表达式进行批量替换。

那要怎样支替换呢?以开始那个例子说明(注:我用的是Adobe Dreamweaver CS3):

1.打开“查找和替换”对话框

2.在“查找范围”选项中选择“文件夹”,然后选择要进行批量替换的文件夹(当然,也可以选择“当前文档”)

3.在“查找”中加入: ([A-z]*)

4.在“替换”中加入:$1

5.在“选项”中选择“使用正则表达式”(请注意,一定要选择这个哦)

6.单击“全部替换”就行了。

分析:
整个过程中,最重要是第三和第四步。在第三步中,用到了正则 ([a-z]*)。这是什么意思呢?根据正则语法:
(pattern)--匹配pattern 并获取这一匹配。所获取的匹配可以从产生的 Matches 集合得到,在VBScript 中使用 SubMatches 集合,在JScript 中则使用 $0…$9 属性。注意,在Dreamweaver中是从$1开始的。

[xyz] -- 匹配所包含的任意一个字符。[A-z]就表示匹配任意大小写英文字符。

* -- 匹配前面的子表达式零次或多次,在本例中就是匹配[a-z]零次或多次。

整个表达式([A-z]*)就表示:匹配任意多个连续的大小写英文字符,并且所产生的区配可以从Matches中得到。

由上面的解释,很容易就能知道,第四步中的$1代表的是Matches集合中的第一个匹配。在本例中也就是任意多个连续的英文字符。至于详细的正则表达式语法,可以到网上查找,或许下个 JavaScript.chm里面也能找到,我在这里就不展开了。

另外,说来也搞笑,刚学正则的时候,总是不知道怎样匹配 任意文本。后来经过一番研读,终于给匹配出来了,其实说来也很简单,不就是任意非空白字符和空白字符的组合嘛:([\s\S]*)

还有要提醒一下大家的是,如果要进行上面的那种标签形式,Dreamweaver还提供了另外一种更为直观的方法,具体我也不多话,在“查找和替换”的“搜索选项中选择“指定标签”就会看到。

总结:Dreamweaver提供了非常强大的查找与替换功能。灵活的运用它提供的各种方法,将会给工作带来更多的便利。

例:

网页1:<TITLE>教学网</TITLE><h1>珍视学生的自主阅读</h1>网页2: <TITLE>教学网</TITLE><h1>做一个热爱读书的学生</h1> 如上,我有一组静态网页,TITLE标签内全部相同,想用h1标签中的标题文本,批量替换TITLE标签中的标题文本。请问,如何用DW正则表达式批量操作!

查找
<TITLE>.*?</TITLE>([\s\S]*?)<h2>(.*?)<\/h2>
替换为
<TITLE>$2</TITLE>$1<h2>$1</h2>
记得勾选上 使用正则表达式


Dreamweaver替换正则表达式表


下表列出了在正则表达式中使用的特殊字符、其含义和用法示例。若要搜索包含该表中某一特殊字符的文本,请在特殊字符前面附加一个反斜杠,令其“转义 ”。例如,若要在 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|yx 或 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_]。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 等来引用第一个、第二个、第三个和更后面的括号分组。


删除#more-5, #more-55

\#more-[^"]*
=============


删除<"post-4">, <"post-34">


<"post-4">

<"[^">]*">
Reply With Quote
Reply


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

Prescription-glasses.com offers prescription glasses online at discount prices.
All times are GMT +8. The time now is 10:51 AM.


Powered by vBulletin Version 3.8.7
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.