佳木斯湛栽影视文化发展公司

主頁 > 知識庫 > Ruby中使用正則表達(dá)式的基礎(chǔ)指引

Ruby中使用正則表達(dá)式的基礎(chǔ)指引

熱門標(biāo)簽:百度AI接口 硅谷的囚徒呼叫中心 企業(yè)做大做強(qiáng) 呼叫中心市場需求 語音系統(tǒng) 客戶服務(wù) Win7旗艦版 電話運(yùn)營中心

正則表達(dá)式的內(nèi)建支持通常只限于腳本語言如Ruby,Perl和awk等,這是一個恥辱:盡管正則表達(dá)式很神秘,但它是一個強(qiáng)大的文本處理工具。通過內(nèi)建而不是通過程序庫接口來支持它,有很大的不同。

正則表達(dá)式只是一種指定字符模式的方法,這個字符模式會在字符串中進(jìn)行匹配。在Ruby中,通常在斜線之間(/pattern/)編寫模式(pattern)來創(chuàng)建正則表達(dá)式。同時,Ruby就是Ruby,正則表達(dá)式是對象并且可以當(dāng)作對象來操作。

比如,可以使用如下的正則表達(dá)式來編寫模式,它會匹配包含Perl或Python的字符串。

復(fù)制代碼 代碼如下:
/Perl|Python/

前面那個斜線界定了這個模式,模式由要匹配的兩個子字符串組成,它們被管道符(|)分開。管道符意味著“要么右邊的字符串,要么左邊的字符串”。在這個例子中,它們分別是Perl或Python。就像在算術(shù)表達(dá)式中的那樣,可以在模式中使用括號,因此可以把模式寫成

復(fù)制代碼 代碼如下:
/P(erl|ython)/

也可以在模式中指定重復(fù)(repetition)。/ab+c/匹配一個含有a,后面跟著一個或多個b,其后是c的字符串。把模式中的加號改成星號,/ab*c/創(chuàng)建了一個匹配含有a,零個或多個b和然后是c的正則表達(dá)式

也可以在模式中匹配一組或多組字符。一些常見的例子是字符類(character classes)如\s,它匹配空白字符(空格符、制表符、回車換行符等等);\d 匹配任何數(shù)字;還有\(zhòng)w,它匹配會出現(xiàn)在一個詞內(nèi)的任何字符。一個點(diǎn)(.)匹配幾乎任意字符。

一旦創(chuàng)建了模式,不去用它總不好意思。=~匹配操作符可以用正則表達(dá)式來匹配字符串。如果在字符串中發(fā)現(xiàn)了模式,=~返回模式的開始位置,否則它返回nil。這意味著可以在if和while語句中把正則表達(dá)式當(dāng)作條件使用。比如,如果字符串包含了Perl或Python,下面的代碼輸出一條消息。

復(fù)制代碼 代碼如下:
if line=~/Perl|Python/

 puts "Scripting language mentioned:#{line}"

end

正則表達(dá)式匹配到的字符串部分,可以用Ruby的其中一種替換方法,替換為其他文本。

復(fù)制代碼 代碼如下:
line.sub(/Perl/,'Ruby')                               #用'Ruby'替換第一個'Perl'

line.gsub(/Python/,'Ruby')                         #用'Ruby'替換所有的'Python'

使用下面語句可以用Ruby替換出現(xiàn)Perl和Python的每個地方。

復(fù)制代碼 代碼如下:
line.gsub(/Perl|Python/,'Ruby')

您可能感興趣的文章:
  • Ruby程序中正則表達(dá)式的基本使用教程
  • 詳解Ruby中正則表達(dá)式對字符串的匹配和替換操作
  • 淺析Ruby中的正則表達(dá)式的使用
  • 舉例初步講解Ruby中的正則表達(dá)式
  • 詳細(xì)介紹Ruby中的正則表達(dá)式
  • 使用Ruby re模塊創(chuàng)建復(fù)雜的正則表達(dá)式
  • ruby 正則表達(dá)式 教程
  • ruby 正則表達(dá)式詳解及示例代碼

標(biāo)簽:長沙 崇左 山西 安康 山西 濟(jì)南 喀什 海南

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Ruby中使用正則表達(dá)式的基礎(chǔ)指引》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    太谷县| 博野县| 昌乐县| 望都县| 康马县| 景东| 增城市| 郧西县| 农安县| 年辖:市辖区| 阿拉善盟| 常德市| 辉南县| 民勤县| 阿拉善右旗| 阿城市| 株洲市| 绥德县| 白城市| 石台县| 新化县| 黄平县| 鄂温| 大同县| 祁门县| 抚顺市| 洪洞县| 山西省| 普洱| 西乌| 名山县| 商城县| 古交市| 运城市| 仙桃市| 黄浦区| 沙坪坝区| 青阳县| 甘泉县| 德惠市| 黄石市|