我找匹配字符串的是前綴Perl的正則表達式幫助
/**
的文件,並有一個後綴
*/
在兩者之間任意數目的字符/空格/換行符。
如:
/** anything
anything
*/
我有m/(\/\*\*).*?(\*\/)/
到目前爲止,但是這不處理換行符。我知道修復必須簡單,但我的正則表達式體驗非常有限。
獎金問題:有沒有人有一個很好的學習正則表達式的網站?
我找匹配字符串的是前綴Perl的正則表達式幫助
/**
的文件,並有一個後綴
*/
在兩者之間任意數目的字符/空格/換行符。
如:
/** anything
anything
*/
我有m/(\/\*\*).*?(\*\/)/
到目前爲止,但是這不處理換行符。我知道修復必須簡單,但我的正則表達式體驗非常有限。
獎金問題:有沒有人有一個很好的學習正則表達式的網站?
添加後s
modifier:
m/(\/\*\*).*?(\*\/)/s
但如果它是你在操作的源代碼,要小心:
print 'a string /**';
int a = b + c;
print '*/';
// /**
a = a - c;
// */
真的是隻有一個在線資源,如果涉及到學習正則表達式:http://www.regular-expressions.info/
請注意,我並不是說沒有其他優秀的在線資源,但是我發佈的那個應該足以讓任何新來正則表達式的人都能夠很好地理解如何使用正則表達式。 – 2010-07-16 13:55:42
作品,也感謝網站。 – James 2010-07-16 14:14:43
沒有使用/ s與make'。'行爲不同,下面也應該工作:
m/(\/\*\*)(\r?\n|.)*(\*\/)/
對於學習perl的地方?
http://perldoc.perl.org/ http://perldoc.perl.org/index-tutorials.html 這是我最終的參考,總是。
但是,如果你不喜歡閱讀手動風格的東西,這是有點乏味。 嘗試Jeffrey Friedl的O'Reilly的Mastering Regular Expressions,這更有趣。
而不是'(\ r?\ n |。)',你可以這樣做:'[\ s \ S]'。 – 2010-07-16 16:02:49
你的特定的正則表達式(用換行)可與\/\*\*[\d\D]*?\*\/
匹配的\D
一個副作用是它匹配新行和以這種方式被使用。
在Perl中,您還可以使用Regexp::Common來查找各種源代碼註釋。
目前已經提到了一些最好的鏈接(弗裏德爾的書和http://www.regular-expressions.info/)
我的網站的正則表達式的是這些:
'的perldoc -q comments' – ghostdog74 2010-07-16 13:48:21
奧賴利對學習正則表達式一個偉大的書。你會猜一猜題目是什麼。 :) – Ether 2010-07-16 14:58:42