一般匹配任意字符都是(.*),這次媽蛋竟然不靈.原來換行和空白字符問題.
正則表達式中,“。”(點符號)匹配的是除了換行符“\n”以外的所有字符。但有時候我們需要匹配包括換行符在內的字符,經過一番搜索,發現了幾種正則表達式匹配任意字符(包括換行符)的方法。
可以用 ([\s\S]*) ,也可以用 “([\d\D]*)”、“([\w\W]*)” 來匹配,就可以匹配包括換行符在內的任意字符。
規則 `<!-- Tocplus 15.1 -->([\d\D]*<!-- End of Tocplus -->`
匹配這個
<!-- Tocplus 15.1 -->里面的
<!-- End of Tocplus -->
<!-- Tocplus 15.1 --> <script type="text/javascript"> tocplusTop=350; tocplusLeft=55; tocplusMinimizedImage='../../../kr08.tocplus007.com/img/minimized_ko.gif'; tocplusHAlign='right'; tocplusWidth=212; tocplusHeight=234; tocplusUserName='customer'; tocplusFrameColor='#f7ecee'; tocplusFloatingWindow=true; var tocplusHost = (("https:" == document.location.protocol) ? "https://" : "http://"); document.write(unescape("%"+"3Cscript src='" + tocplusHost + "kr08.tocplus007.com/chatLoader.do?userId=wonjin' type='text/javascript'"+"%"+"3E"+"%"+"3C/script"+"%"+"3E")); </script> <!-- End of Tocplus -->
shell 正則寫法不兼容問題
```
sed -z -i 's/<!-- Tocplus 15.1 -->.*<!-- End of Tocplus -->/o/g' `grep -rlPzl '<\!-- Tocplus 15.1 -->[\d\D]*<\!-- End of Tocplus -->' ./en`
```
