西西軟件園多重安全檢測(cè)下載網(wǎng)站、值得信賴的軟件下載站!
軟件
軟件
文章
搜索

首頁西西教程其它教程 → Dreamweaver中使用正則表達(dá)式查找替換

Dreamweaver中使用正則表達(dá)式查找替換

相關(guān)軟件相關(guān)文章發(fā)表評(píng)論 來源:西西整理時(shí)間:2013/1/16 17:27:51字體大。A-A+

作者:西西點(diǎn)擊:401次評(píng)論:0次標(biāo)簽: 正則

  • 類型:文件處理大。11KB語言:中文 評(píng)分:10.0
  • 標(biāo)簽:
立即下載

在WEB前端開發(fā)過程中,經(jīng)常會(huì)遇到批量查找替換某些代碼,擅于運(yùn)用工具會(huì)大大提高你的開發(fā)效率,在這里簡(jiǎn)單介紹下在DW里用正則查找替換的方法:

問題: 給屬性添加雙引號(hào),例如:

<a href=index.html title=前端筆記>
<img src=images/img.jpg width=21 height=5 alt=前端筆記 />
</a>


現(xiàn)在想把它們的值都加上引號(hào),例如:

<a href="index.html" title="前端筆記">
<img src="images/img.jpg" width="21" height="5" alt="前端筆記" />
</a>


由于這些東西有很多,單個(gè)修改很麻煩,怎么辦?

解決辦法:使用DW查找替換中的正則表達(dá)式功能。

在查找框中輸入:
(\s+\w+)\s*=\s*([^>"\s]+)

在替換框中輸入:

(\s+\w+)\s*="$1"

OK,問題解決了。注:其中 \s* 表示空格!

在此給大家推薦一個(gè)正則表達(dá)式查找替換的工具:

Actual Search & Replace

Actual Search & Replace 是一個(gè)簡(jiǎn)單易用,但功能強(qiáng)大的工具,可以對(duì)多個(gè) ASCII (文本,HTML 等) 文件進(jìn)行搜索和替換操作。下面是該程序的主要功能:

通過指定一個(gè)路徑,文件名類型和查詢查找文件。通過短語,單詞,搜索引擎中的查詢,多行或正則表達(dá)式來搜索文檔。

可以在上一次搜索結(jié)果中搜索。

Actual Search & Replace 可以在找到文件中高亮顯示包含搜索單詞和短語的行。

在文檔中替換,插入和刪除短語或行。

批量操作允許你通過一鍵操作來執(zhí)行大量的替換工作。

表達(dá)式全集

正則表達(dá)式有多種不同的風(fēng)格。下表是在PCRE中元字符及其在正則表達(dá)式上下文中的行為的一個(gè)完整列表:

字符 描述

\將下一個(gè)字符標(biāo)記為一個(gè)特殊字符、或一個(gè)原義字符、或一個(gè)向后引用、或一個(gè)八進(jìn)制轉(zhuǎn)義符。例如,「n」匹配字符「n」。「\n」匹配一個(gè)換行符。序列「\\」匹配「\」而「\(」則匹配「(」。

^匹配輸入字符串的開始位置。如果設(shè)置了RegExp對(duì)象的Multiline屬性,^也匹配「\n」或「\r」之后的位置。

$匹配輸入字符串的結(jié)束位置。如果設(shè)置了RegExp對(duì)象的Multiline屬性,$也匹配「\n」或「\r」之前的位置。

*匹配前面的子表達(dá)式零次或多次。例如,zo*能匹配「z」以及「zoo」。*等價(jià)于{0,}。

+匹配前面的子表達(dá)式一次或多次。例如,「zo+」能匹配「zo」以及「zoo」,但不能匹配「z」。+等價(jià)于{1,}。

?匹配前面的子表達(dá)式零次或一次。例如,「do(es)?」可以匹配「does」或「does」中的「do」。?等價(jià)于{0,1}。

{n}n是一個(gè)非負(fù)整數(shù)。匹配確定的n次。例如,「o{2}」不能匹配「Bob」中的「o」,但是能匹配「food」中的兩個(gè)o。

{n,}n是一個(gè)非負(fù)整數(shù)。至少匹配n次。例如,「o{2,}」不能匹配「Bob」中的「o」,但能匹配「foooood」中的所有o!竜{1,}」等價(jià)于「o+」!竜{0,}」則等價(jià)于「o*」。

{n,m}m和n均為非負(fù)整數(shù),其中n<=m。最少匹配n次且最多匹配m次。例如,「o{1,3}」將匹配「fooooood」中的前三個(gè)o。「o{0,1}」等價(jià)于「o?」。請(qǐng)注意在逗號(hào)和兩個(gè)數(shù)之間不能有空格。

?當(dāng)該字符緊跟在任何一個(gè)其他限制符(*,+,?,{n},{n,},{n,m})后面時(shí),匹配模式是非貪婪的。非貪婪模式盡可能少的匹配所搜索的字符串,而默認(rèn)的貪婪模式則盡可能多的匹配所搜索的字符串。例如,對(duì)于字符串「oooo」,「o+?」將匹配單個(gè)「o」,而「o+」將匹配所有「o」。

.匹配除「\n」之外的任何單個(gè)字符。要匹配包括「\n」在內(nèi)的任何字符,請(qǐng)使用像「[.\n]」的模式。

(pattern)匹配pattern并獲取這一匹配。所獲取的匹配可以從產(chǎn)生的Matches集合得到,在VBScript中使用SubMatches集合,在JScript中則使用$0…$9屬性。要匹配圓括號(hào)字符,請(qǐng)使用「\(」或「\)」。

(?:pattern)匹配pattern但不獲取匹配結(jié)果,也就是說這是一個(gè)非獲取匹配,不進(jìn)行存儲(chǔ)供以后使用。這在使用或字符「(|)」來組合一個(gè)模式的各個(gè)部分是很有用。例如「industr(?:y|ies)」就是一個(gè)比「industry|industries」更簡(jiǎn)略的表達(dá)式。

(?=pattern)正向肯定預(yù)查,在任何匹配pattern的字符串開始處匹配查找字符串。這是一個(gè)非獲取匹配,也就是說,該匹配不需要獲取供以后使用。例如,「Windows(?=95|98|NT|2000)」能匹配「Windows2000」中的「Windows」,但不能匹配「Windows3.1」中的「Windows」。預(yù)查不消耗字符,也就是說,在一個(gè)匹配發(fā)生后,在最后一次匹配之后立即開始下一次匹配的搜索,而不是從包含預(yù)查的字符之后開始。

(?!pattern)正向否定預(yù)查,在任何不匹配pattern的字符串開始處匹配查找字符串。這是一個(gè)非獲取匹配,也就是說,該匹配不需要獲取供以后使用。例如「Windows(?!95|98|NT|2000)」能匹配「Windows3.1」中的「Windows」,但不能匹配「Windows2000」中的「Windows」。預(yù)查不消耗字符,也就是說,在一個(gè)匹配發(fā)生后,在最后一次匹配之后立即開始下一次匹配的搜索,而不是從包含預(yù)查的字符之后開始

(?<=pattern)反向肯定預(yù)查,與正向肯定預(yù)查類擬,只是方向相反。例如,「(?<=95|98|NT|2000)Windows」能匹配「2000Windows」中的「Windows」,但不能匹配「3.1Windows」中的「Windows」。

(?<!pattern)反向否定預(yù)查,與正向否定預(yù)查類擬,只是方向相反。例如「(?<!95|98|NT|2000)Windows」能匹配「3.1Windows」中的「Windows」,但不能匹配「2000Windows」中的「Windows」。

x|y匹配x或y。例如,「z|food」能匹配「z」或「food」。「(z|f)ood」則匹配「zood」或「food」。

[xyz]字符集合。匹配所包含的任意一個(gè)字符。例如,「[abc]」可以匹配「plain」中的「a」。

[^xyz]負(fù)值字符集合。匹配未包含的任意字符。例如,「[^abc]」可以匹配「plain」中的「p」。

[a-z]字符范圍。匹配指定范圍內(nèi)的任意字符。例如,「[a-z]」可以匹配「a」到「z」范圍內(nèi)的任意小寫字母字符。

[^a-z]負(fù)值字符范圍。匹配任何不在指定范圍內(nèi)的任意字符。例如,「[^a-z]」可以匹配任何不在「a」到「z」范圍內(nèi)的任意字符。

\b匹配一個(gè)單詞邊界,也就是指單詞和空格間的位置。例如,「er\b」可以匹配「never」中的「er」,但不能匹配「verb」中的「er」。

\B匹配非單詞邊界!竐r\B」能匹配「verb」中的「er」,但不能匹配「never」中的「er」。

\cx匹配由x指明的控制字符。例如,\cM匹配一個(gè)Control-M或回車符。x的值必須為A-Z或a-z之一。否則,將c視為一個(gè)原義的「c」字符。

\d匹配一個(gè)數(shù)字字符。等價(jià)于[0-9]。

\D匹配一個(gè)非數(shù)字字符。等價(jià)于[^0-9]。

\f匹配一個(gè)換頁符。等價(jià)于\x0c和\cL。

\n匹配一個(gè)換行符。等價(jià)于\x0a和\cJ。

\r匹配一個(gè)回車符。等價(jià)于\x0d和\cM。

\s匹配任何空白字符,包括空格、制表符、換頁符等等。等價(jià)于[\f\n\r\t\v]。

\S匹配任何非空白字符。等價(jià)于[^\f\n\r\t\v]。

\t匹配一個(gè)制表符。等價(jià)于\x09和\cI。

\v匹配一個(gè)垂直制表符。等價(jià)于\x0b和\cK。

\w匹配包括下劃線的任何單詞字符。等價(jià)于「[A-Za-z0-9_]」。

\W匹配任何非單詞字符。等價(jià)于「[^A-Za-z0-9_]」。

\xn匹配n,其中n為十六進(jìn)制轉(zhuǎn)義值。十六進(jìn)制轉(zhuǎn)義值必須為確定的兩個(gè)數(shù)字長(zhǎng)。例如,「\x41」匹配「A」。「\x041」則等價(jià)于「\x04&1」。正則表達(dá)式中可以使用ASCII編碼。.

\num匹配num,其中num是一個(gè)正整數(shù)。對(duì)所獲取的匹配的引用。例如,「(.)\1」匹配兩個(gè)連續(xù)的相同字符。

\n標(biāo)識(shí)一個(gè)八進(jìn)制轉(zhuǎn)義值或一個(gè)向后引用。如果\n之前至少n個(gè)獲取的子表達(dá)式,則n為向后引用。否則,如果n為八進(jìn)制數(shù)字(0-7),則n為一個(gè)八進(jìn)制轉(zhuǎn)義值。

\nm標(biāo)識(shí)一個(gè)八進(jìn)制轉(zhuǎn)義值或一個(gè)向后引用。如果\nm之前至少有nm個(gè)獲得子表達(dá)式,則nm為向后引用。如果\nm之前至少有n個(gè)獲取,則n為一個(gè)后跟文字m的向后引用。如果前面的條件都不滿足,若n和m均為八進(jìn)制數(shù)字(0-7),則\nm將匹配八進(jìn)制轉(zhuǎn)義值nm。

\nml如果n為八進(jìn)制數(shù)字(0-3),且m和l均為八進(jìn)制數(shù)字(0-7),則匹配八進(jìn)制轉(zhuǎn)義值nml。

\un匹配n,其中n是一個(gè)用四個(gè)十六進(jìn)制數(shù)字表示的Unicode字符。例如,\u00A9匹配版權(quán)符號(hào)(&copy;)。

    相關(guān)評(píng)論

    閱讀本文后您有什么感想? 已有人給出評(píng)價(jià)!

    • 8 喜歡喜歡
    • 3 頂
    • 1 難過難過
    • 5 囧
    • 3 圍觀圍觀
    • 2 無聊無聊

    熱門評(píng)論

    最新評(píng)論

    發(fā)表評(píng)論 查看所有評(píng)論(0)

    昵稱:
    表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
    字?jǐn)?shù): 0/500 (您的評(píng)論需要經(jīng)過審核才能顯示)