【JavaScript】Regex--非貪婪模式截取任一字元串的筆記__JAVA

來源:互聯網
上載者:User

Sodino
文章目錄 1. 情境 2. Regex一 3. Regex二 4. 排查問題 5. Regex三 6. 結論 情境

要將下面的字串截取兩個{title:***,url:***}來。

 1 2 3 4 5 
 <script> {title: 'RegExp 對象參考手冊',url: 'http://sodino.com/regexp.asp'}, {title: 'w3cSchool script', url: 'http://www.w3cSchool.com'}, {} </script> 
Regex一
 1 2 3 4 5 6 7 8 9 10 
 var string = '<script>' + "{title:'RegExp 對象參考手冊',url:'http://sodino.com/regexp.asp'}," + "{title:'w3cSchool script', url:'http://www.w3cSchool.com'}," + "{}" + '</script>'; var reg = / \{ . +\}/g; // Regex var result = string . match(reg); console . log(result); 

這個毫無疑問是全匹配,即輸出為第一個{到最後一個}之間的全部內容:

 1 2 
 D: \github \niVoVin>node test.js [ ' {title: \'RegExp 對象參考手冊 \',url: \'http://sodino.com/regexp.asp \' }, {title: \'w3cSchool script \', url: \'http://www.w3cSchool.com \' }, { }' ] 
Regex二

書上說在運算式的後面加上?就是非貪婪模式了。即n?匹配包含零個或一個n的字串。
那麼目前想的是只匹配一個},那麼將運算式修改為如下:

 1 
 var reg = /\{.+\}?/g; 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.