美文网首页
Ruby 正则表达式语法

Ruby 正则表达式语法

作者: changsanjiang | 来源:发表于2017-09-29 13:07 被阅读107次
    #!/usr/bin/ruby
    # -*- coding: UTF-8 -*-
    
    # 正则表达式
    
    str1 = "Cats are smarter than dogs"
    str2 = "Dogs also like meat"
    
    # => 正则表达式从字面上看是一种介于 斜杆之间 或介于跟在 %r 后的任义分隔符之间的模式
    if ( str1 =~ /Cats(.*)/ ) then puts "Str1 contains Cats" end
        # => 这在描述包含大量不想转义的斜杆字符时非常有用.
    if ( str2 =~ %r!Dogs(.*)! ) then puts "Str2 contains Dogs" end
    
    # 正则表达式修饰符
    # => 正则表达式从字面上看可能包含一个可选的修饰符, 用于控制各方面的匹配. 
    # => 修饰符在第二个斜杆字符后指定, 下面列出可能的修饰符:
    # => 修饰符        描述
    # =>   i        当匹配文本时忽略大小写.
    # =>   o        只执行一次 #{} 插值, 正则表达式在第一次时就进行判断. 
    # =>   x        忽略空格, 允许在整个表达式中放入空白符和注释
    # =>   m        匹配多行, 把换行字符识别为正常字符. 
    # =>   u,e,s,n  把正则表达式解释为 Unicode(UTF-8)、EUC、SJIS 或 ASCII. 如果没有指定修饰符, 则认为正则表达式使用的是源编码.
    
    # => 正则表达式模式
        # => 除了控制字符, ( + ? . * ^ $ () [] {} | \ ), 其他所有字符都匹配本身.
        # => 你可以在控制字符前放置一个反斜杆来控制字符进行转义. 
        # => 下面列出了 Ruby 中可用的正则表达式语法.
    # => 模式     描述  
    # => ^          匹配行的开头.
    # => $          匹配行的结尾.
    # => .          匹配除了换行符之外的任意单字符. 使用 m 选项时, 他也可以匹配换行符.
    # => [...]      匹配在方括号中的任意单字符.
    # => [^...]     匹配不在方括号中的任意单字符.
    # => re*        匹配前面的子表达式零次或多次.
    # => re+        匹配前面的子表达式一次或多次.
    # => re?        匹配前面的子表达式零次或一次.
    # => re{n}      匹配前面的子表达式 n 次.
    # => re{n,}     匹配前面的子表达式 n 次或 n 次以上.
    # => re{n, m}   匹配前面的子表达式至少 n 次至多 m 次.
    # => a|b        匹配 a 或 b.
    # => (re)       对正则表达式进行分组, 并记住匹配文本.
    # => (?imx)     暂时打开正则表达式内的i、m 或 x 选项. 如果在圆括号中, 则只影响圆括号内的部分.
    # => (?-imx)    暂时关闭正则表达式内的i、m 或 x 选项. 如果在圆括号中, 则只影响圆括号内的部分.
    # => (?: re)    对正则表达式进行分组, 但不记住匹配文本.
    # => (?imx: re) 暂时打开圆括号内的i、m 或 x 选项.
    # => (?-imx: re)暂时管不圆括号内的i、m 或 x 选项.
    # => (?#...)    注释.
    # => (?=re)     使用模式指定位置. 没有范围.
    # => (?!re)     使用模式的否定指定位置. 没有范围.
    # => (?>re)     匹配无回溯的独立模式.
    # => \w         匹配单词字符.
    # => \W         匹配非单词字符.
    # => \s         匹配空白字符. 等价于 [\t\n\r\f].
    # => \S         匹配非空白字符.
    # => \d         匹配数字. 等价于 [0-9]
    # => \D         匹配非数字.
    # => \A         匹配字符串的开头.
    # => \z         匹配字符串的结尾. 
    # => \Z         匹配字符串的结尾. 如果存在换行符, 则只匹配到换行符之前. 
    # => \G         匹配最后一个匹配完成的点.
    # => \b         当在括号外时匹配单词边界, 当在括号内时匹配退格键(0x08).
    # => \B         匹配非单词边界.
    # => \n,\t,etc. 匹配换行符、回车符、制表符等等
    # => \1...\9    匹配第 n 个分组子表达式.
    # => \10        如果已匹配过, 则匹配第 n 个分组子表达式. 否则指向字符编码的八进制表示.
    

    相关文章

      网友评论

          本文标题:Ruby 正则表达式语法

          本文链接:https://www.haomeiwen.com/subject/zpriextx.html