Ruby正則表達(dá)式示例講解
Ruby是一款應(yīng)用靈活的語(yǔ)言,它也包含許多正則表達(dá)式,熟練掌握這些表達(dá)式,可以幫助我們理解Ruby語(yǔ)言。在這里我們將會(huì)學(xué)到幾種常見(jiàn)的Ruby正則表達(dá)式。#t#
Ruby正則表達(dá)式是用來(lái)表達(dá)字符串的模式(pattern)的。也可以這么理解:我們使用正則表達(dá)式來(lái)表示某種搜索規(guī)則,然后使用該正則表達(dá)式來(lái)完成字符串的搜索工作。
舉個(gè)例子,假定有這樣的搜索規(guī)則:“字符串以’FOO’開(kāi)始,以’R’結(jié)束”,那么就可以使用以下正則表達(dá)式來(lái)表示該規(guī)則。
Ruby用//將正則表達(dá)式括起來(lái)。^表示開(kāi)頭,$表示結(jié)尾,.*表示0個(gè)以上的任意字符。現(xiàn)在就講講正則表達(dá)式的規(guī)則的寫法。正則表達(dá)式中有很多上述的具有特別意義的字符。首先是下列字符。
[ ] 范圍描述符。[a-z]表示從a到z之間的任意一個(gè)。( 注意大小寫的區(qū)分:)
\w 英文字母和數(shù)字。即[0-9 A-Z a-z]。
\W 非英文字母和數(shù)字
\s 空字符,即[\t\n\r\f]。
\S 非空字符。
\d 數(shù)字,即[0-9]。
\D 非數(shù)字。
\b 詞邊界字符(在范圍描述符外部時(shí))
\B 非詞邊界字符
\b 退格符(0x08)(在范圍描述符內(nèi)部時(shí))
* 前面元素出現(xiàn)0次以上
+ 前面元素出現(xiàn)1次以上
{m,n} 前面元素最少出現(xiàn)m次,最多出現(xiàn)n次
? 前面元素出現(xiàn)0次或1次
| 選擇
( ) 群組
Ruby正則表達(dá)式中其他字符 該字符本身
例如,“^f[a-z]+”表示“***個(gè)字符是f,后面是若干個(gè)從a到z之間的字符”,可以是“fobar”或“fool”等等。
這種表達(dá)法就是正則表達(dá)式(regular expression)。在搜索字符串時(shí)正則表達(dá)式非常有用,因此在UNIX的世界里,Ruby正則表達(dá)式得到了廣泛的應(yīng)用。grep程序就是個(gè)代表。許多人是不是經(jīng)常會(huì)用到它呢?