国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

Ruby程序中正則表達式的基本使用教程

2019-10-26 19:29:04
字體:
來源:轉載
供稿:網友

Ruby大部分的內置類型都和其它的編程語言很相似。主要有strings,integers,floats,arrays等等。然而,只有腳本語言,如Ruby,Perl,和awk等提供了內置表達式類型的支持。正則表達式盡管比較隱蔽,但卻是一個很強大的文本處理工具。

正則表達式是使用指定的模式匹配字符串的一種簡單的方法。在Ruby中,創建正則表達式的典型方式是把模式寫在兩個斜線之間/pattern/。

畢竟,Ruby就是Ruby,正則表達式也是對象,也能像對象般操作。

例如,你可以使用下面的正則表達式寫一個模式,它匹配一個字符串中包含有Perl或Python。

<!--more-->/Perl|Python/

在正斜線體內,是兩個我們要匹配的字符串,它們使用"|"分隔。這個管道符的意思是"左邊的或者右邊的",在這個模式中是Perl或者Python。

你還可以在模式中使用括號,就像是在算術表達式中使用的那樣,因此這個模式還可以寫成

/P(erl|ython)/

你還可以在模式中指定重復。例如加號,/ab+c/匹配字符串中一個a后面有一個或多個b然后跟著是一個c。把加號換成星號,/ab*c/創建的正則表達式是匹配一個a后面跟著0個或多個b然后跟著是一個c。

你還可以在模式中匹配一組字符。常用的字符類型例子有/s,它匹配一個空白字符(space,tab,換行符,等等);/d匹配任意數字;/w匹配任意的典型單詞字符。句號(.)匹配(基本上)任意字符。

我們把所有這些組合起來,做成實用的正則表達式。

//d/d:/d/d:/d/d/ # a time such as 12:34:56/Perl.*Python/  # Perl, zero or more other chars, then Python/Perl Python/  # Perl, a space, and Python/Perl *Python/  # Perl, zero or more spaces, and Python/Perl +Python/  # Perl, one or more spaces, and Python/Perl/s+Python/ # Perl, whitespace characters, then Python/Ruby (Perl|Python)/ # Ruby, a space, and either Perl or Python

一但創建了一個模式,不能使用它是件很郁悶的事情。匹配操作符=~用來對一個字符串進行正則表達式匹配。如果匹配成功,=~返回第一次匹配成功的位置,否則它返回nil。也就是說,你可以在if和while的條件聲明中使用正則表達式。例如下面的代碼片段,

如果字符串中包含有文本Perl或Python時,輸出一條信息。

puts "Scripting language mentioned: #{line}" if line =~ /Perl|Python/

你能使用Ruby替換所有出現有Perl和Python的地方。

line.gsub(/Perl|Python/, 'Ruby')

從iHower的Ruby on Rails實戰圣經中摘一個示例,用正則表達式抓取手機號碼:

phone = "139-1234-5678"if phone =~ /(/d{3})-(/d{4})-(/d{4})/ start_with = $1 mid_num = $2 end_as = $3end
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 洛宁县| 崇仁县| 裕民县| 新余市| 景谷| 贵州省| 广安市| 湘乡市| 佛学| 华蓥市| 湟源县| 盱眙县| 大石桥市| 金阳县| 郯城县| 南澳县| 昭觉县| 江油市| 荣昌县| 宜州市| 成武县| 桐梓县| 石首市| 方城县| 庄河市| 平安县| 台东县| 武汉市| 乌拉特后旗| 卢湾区| 双柏县| 沙湾县| 富川| 瑞丽市| 平乐县| 安顺市| 凤城市| 佛坪县| 乌审旗| 新泰市| 富宁县|