显示标签为“//m”的博文。显示所有博文
显示标签为“//m”的博文。显示所有博文

2009年5月6日星期三

让正式表达式 '.' 也能查找到换行

使用 Ruby 正则表达式中的 m 检索模式, 例:


p /./ =~ "\n"    #=> nil
p /./m =~ "\n"    #=> 0


注:
    /../m 在 Ruby 的正则表达式中, m 为多行检索时,换行符会被看做普通字符来处理.

2009年5月3日星期日

从首字符或尾字符开始的查找

在 Ruby 的正则表达式中, "首字符" 为 \A, "尾字符" 为 \z(注意z是小写字符)


p (/\Aa/ =~ "aiueo")    #=> 0
p (/\Ao/ =~ "aiueo")    #=> nil
p (/a\z/ =~ "aiueo")    #=> nil
p (/o\z/ =~ "aiueo")    #=> 4


注:
    我们经常会在正则表达式中看到, ^ 和 $ 运算符. 它们分别表示为 行首 和 行末.


p "abc\ndef\nghi\n".slice(/..$/m)    #=> "bc"
p "abc\ndef\nghi\n".slice(/..\Z/m)    #=> "hi"
p "abc\ndef\nghi\n".slice(/..\z/m)    #=> "i\n"


??:
    /../m 在 Ruby 的正则表达式中, m 为多行检索时,换行符会被看做普通字符来处理.
    \Z 在 Ruby 的正则表达式中, 表示字符串中的行末.