javascriptRegex參數/g與/i及/gi的使用指南,Regexgi

來源:互聯網
上載者:User

javascriptRegex參數/g與/i及/gi的使用指南,Regexgi

regularexpression=/pattern/[switch]

這個switch就有三種值 g: 全域匹配 i: 忽略大小寫 gi: 全域匹配 + 忽略大小寫 JScript 語言參考

--------------------------------------------------------------------------------

  後向引用 Regex一個最重要的特性就是將匹配成功的模式的某部分進行儲存供以後使用這一能力。請回想一下,對一個Regex模式或部分模式兩邊添加圓括弧將導致這部分運算式儲存到一個臨時緩衝區中。可以使用非捕獲元字元 '?:', '?=', or '?!' 來忽略對這部分Regex的儲存。

  所捕獲的每個子匹配都按照在Regex模式中從左至右所遇到的內容儲存。儲存子匹配的緩衝區編號從 1 開始,連續編號直至最大 99 個子運算式。每個緩衝區都可以使用 '\n' 訪問,其中 n 為一個標識特定緩衝區的一位或兩位十進位數。

  後向引用一個最簡單,最有用的應用是提供了確定文字中連續出現兩個相同單詞的位置的能力。請看下面的句子: Is is the cost of of gasoline going up up? 根據所寫內容,上面的句子明顯存在單詞多次重複的問題。如果能有一種方法無需尋找每個單詞的重複現象就能修改該句子就好了。下面的 JScript Regex使用一個子運算式就可以實現這一功能。

/\b([a-z]+) \1\b/gi等價的 VBScript 運算式為:

"\b([a-z]+) \1\b"  在這個樣本中,子運算式就是圓括弧之間的每一項。所捕獲的運算式包括一個或多個字母字元,即由'[a-z]+' 所指定的。該Regex的第二部分是對前面所捕獲的子匹配的引用,也就是由附加運算式所匹配的第二次出現的單詞。'\1'用來指定第一個子匹配。單詞邊界元字元確保只檢測單獨的單詞。如果不這樣,則諸如 "is issued" 或 "this is" 這樣的短語都會被該運算式不正確地識別。

  在 JScript 運算式中,Regex後面的全域標誌 ('g') 表示該運算式將用來在輸入字串中尋找儘可能多的匹配。大小寫敏感性由運算式結束處的大小寫敏感性標記 ('i') 指定。多行標記指定可能出現在分行符號的兩端的潛在匹配。對 VBScript 而言,在運算式中不能設定各種標記,但必須使用 RegExp 對象的屬性來顯式設定。   

  使用上面所示的Regex,下面的 JScript 代碼可以使用子匹配資訊,在一個文字字串中將連續出現兩次的相同單詞替換為一個相同的單詞:

var ss = "Is is the cost of of gasoline going up up?.\n"; var re = /\b([a-z]+) \1\b/gim; //建立Regex樣式.var rv = ss.replace(re,"$1"); //用一個單詞替代兩個單詞.


JavaScript Regex文法中 $ 表示什意思?

javascriptRegex/g與/i及/gi的意義 regularexpression=/pattern/[switch]
這個switch就有三種值
g: 全域匹配
i: 忽略大小寫
gi: 以上組合 //就像"",中間的_是Regex的模式,名面的g是選項,聲明匹配的方式,其實好像就是將_換成$,個人意見,供參考。
 
在javascript中怎使用Regex??

<script type="text/javascript">
var reg = /^\d{5}$/;
var str = '12345';
var result;

result = reg.test(str); //測試:str 是否符合 正則 ^\d{5}$,返回true 或 false

//result = reg.exec(str); //尋找:str 中否符合 正則 ^\d{5}$ 的字元,找不到返回 null

</script>
 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.