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

主頁 > 知識庫 > 淺析Ruby中的正則表達式的使用

淺析Ruby中的正則表達式的使用

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


    如果只是需要中查找字符串的 text, 不要使用正則表達式:string['text']

    針對簡單的結(jié)構, 你可以直接使用string[/RE/]的方式來查詢.

  match = string[/regexp/]       # get content of matched regexp
  first_group = string[/text(grp)/, 1] # get content of captured group
  string[/text (grp)/, 1] = 'replace' # string => 'text replace'

    當你不需要替結(jié)果分組時,使用非分組的群組。

  /(first|second)/  # bad
  /(?:first|second)/ # good

    不要使用 Perl 遺風的變量來表示匹配的正則分組(如 $1,$2 等),使用 Regexp.last_match[n] 作為替代。

  /(regexp)/ =~ string
  ...

  # bad
  process $1

  # good
  process Regexp.last_match[1]

    避免使用數(shù)字化命名分組很難明白他們代表的意思。命名群組來替代。

  # bad
  /(regexp)/ =~ string
  ...
  process Regexp.last_match[1]

  # good
  /(?meaningful_var>regexp)/ =~ string
  ...
  process meaningful_var

    字符類有以下幾個特殊關鍵字值得注意: ^, -, \, ], 所以, 不要轉(zhuǎn)義 . 或者 [] 中的括號。

    注意, ^ 和 $ , 他們匹配行首和行尾, 而不是一個字符串的結(jié)尾, 如果你想匹配整個字符串, 用 \A 和 \Z。

  string = "some injection\nusername"
  string[/^username$/]  # matches
  string[/\Ausername\Z/] # don't match

    針對復雜的正則表達式,使用 x 修飾符??商岣呖勺x性并可以加入有用的注釋。只是要注意空白字符會被忽略。

  regexp = %r{
   start     # some text
   \s      # white space char
   (group)    # first group
   (?:alt1|alt2) # some alternation
   end
  }x

    sub/gsub 也支持哈希以及代碼塊形式語法, 可用于復雜情形下的替換操作.

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

標簽:崇左 長沙 安康 喀什 山西 濟南 海南 山西

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

    • 400-1100-266
    临城县| 同德县| 明星| 垦利县| 广安市| 大埔区| 和硕县| 泾源县| 淳化县| 蒙山县| 栖霞市| 定南县| 两当县| 会昌县| 芒康县| 宣城市| 长沙市| 眉山市| 大化| 河曲县| 全南县| 罗山县| 手游| 青河县| 佛学| 杂多县| 当雄县| 武功县| 腾冲县| 定南县| 奉贤区| 利辛县| 萍乡市| 环江| 山阳县| 铅山县| 高邑县| 丰都县| 若尔盖县| 延安市| 仪征市|