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