LOGO
首页 小说列表 排行榜 搜索

    cxlrpgxp-第1页  护眼阅读

  • 第1页
  • 上一页
  • 下一页

    温馨提醒:系统正在全面升级。您可以访问最新站点。谢谢!

      附录

      正则表达式

      sprintf 格式 正则表达式

      后向引用

      字符簇

      下面是 ruby 支持的正则表达式符号(元字符)一览表。

      不带 \ 的字母和数字不是元字符

      带 \ 的符号不是元字符

      有如此规则。

      ^

      行首。匹配输入字符串头部或换行符之后的位置。

      $

      行尾。匹配输入字符串尾部或换行符之前的位置。

      p "\n".gsub(/$/, "o") # => "o\no"

      .

      匹配除换行符之外的任何单个字符(多字节字符的话就不是一个字节而是一个字符)。使用正则表达式选项 m(多行模式。参考正则表达式字面值),则可以匹配含有换行符在内的任意单个字符。

      p /./e =~ " あ "[0,1] # => nil

      \w

      匹配包括下划线的任何字母数字字符。等同于[0-9A-Za-z_]。

      中文的全角字符也匹配。

      \W

      匹配任何非字母数字字符。\w 以外的字符。

      \s

      匹配任何空字符,包括空格、制表符、换页符等等。等同于[ \t\n\r\f\v]。

      \S

      匹配任何非空字符。[ \t\n\r\f\v]以外的字符。

      \d

      匹配一个数字字符。等同于[0-9]。

      \D

      匹配一个非数字字符。

      \A

      匹配字符串头部。和 ^ 不同,换行对其无影响。

      \Z

      匹配字符串尾部。字符串以换行结束的话则匹配换行之前的位置。

      p "\n".gsub(/\Z/, "o") # => "o\no"

      \z

      匹配字符串尾部。与 $ 和 \Z 不同的是换行对其无影响。

      \b

      匹配字符类指定的单词边界(匹配 \w 和 \W 之间),也就是指单词和空格间的位置。字符类指定为退格符(0x08)。例如,'er\b' 可以匹配 "never" 中的 'er',但不能匹配 "verb" 中的 'er'。

      \B

      匹配非单词边界。'er\B' 能匹配 "verb" 中的 'er',但不能匹配 "never" 中的 'er'。

      \cx

      匹配由 x 指明的控制字符。例如,\cM 匹配一个 Control-M 或回车符。x 的值必须为 A-Z 或 a-z 之一。否则,将 c 视为一个原义的 'c' 字符。

      \f

      匹配一个换页符。等同于 \x0c 和 \cL。

      \n

      匹配一个换行符。等同于 \x0a 和 \cJ。

      \r

      匹配一个回车符。等同于 \x0d 和 \cM。

      \t

      匹配一个制表符。等同于 \x09 和 \cI。

      \v

      匹配一个垂直制表符。等同于 \x0b 和 \cK。

      \xn

      匹配 n,其中 n 为十六进制转义值。十六进制转义值必须为确定的两个数字长。例如,'\x41' 匹配 "A"。'\x041' 则等同于 '\x04' & "1"。正则表达式中可以使用 ASCII 编码。

      \num

      匹配 num,其中 num 是一个正整数。对所获取的匹配的引用。例如,'(.)\1' 匹配两个连续的相同字符。

      \n

      标识一个八进制转义值或一个向后引用。如果 \n 之前至少 n 个获取的子表达式,则 n 为向后引用。否则,如果 n 为八进制数字 (0-7),则 n 为一个八进制转义值。

      \nm

      标识一个八进制转义值或一个向后引用。如果 \nm 之前至少有 nm 个获得子表达式,则 nm 为向后引用。如果 \nm 之前至少有 n 个获取,则 n 为一个后跟文字 m 的向后引用。如果前面的条件都不满足,若 n 和 m 均为八进制数字 (0-7),则 \nm 将匹配八进制转义值 nm。

      \nml

      如果 n 为八进制数字 (0-3),且 m 和 l 均为八进制数字 (0-7),则匹配八进制转义值 nml。

      \un

      匹配 n,其中 n 是一个用四个十六进制数字表示的 Unicode 字符。例如,\u00A9 匹配版权符号 (?)。

      \G

      在上次成功匹配的地方(之后)进行匹配(不留间隔)。只有在首次使用时才会匹配到头部(与 \A 相同)。

      可以在 scan 和 gsub 中使用。当您想在上次匹配的地方之后再进行匹配的话,可以使用。

      # 从头取出 3 位数字(数字必须相连)。

      str = "123456 789"

      str.scan(/\G\d\d\d/) {|m| p m }

      [ ]

      指定字符簇。请参考字符簇。

      *

      匹配前面的子表达式零次或多次。尽可能匹配较长的部分。例如,zo* 能匹配 "z" 以及 "zoo"。* 等同于{0,}。

      *?

      负责指定数量(quantifiers)。表示前面子表达式至少出现零次(尽量匹配短的部分)。

      +

      负责指定数量(quantifiers)。表示前面子表达式至少出现 1 次

      +?

      负责指定数量(quantifiers)。表示前面子表达式至少出现 1 次(尽量匹配短的部分)。

      {m}

      {m,}

      {m,n}

      指定子表达式重复出现的次数(interval quantifier)。分别表示前面子表达式重复出现

      m 次

      至少 m 次

      至少 m 次,至多 n 次

      {,n} 或 {,} 将导致匹配失败。

      str = "foofoofoo"

      p str[/(foo){1}/] # => "foo"

      p str[/(foo){2,}/] # => "foofoofoo"

      p str[/(foo){1,2}/] # => "foofoo"

      正则表达式 ?、*、+ 分别等同于 {0,1}、{0,}、{1,}。

      {m}?

      {m,}?

      {m,n}?

      指定子表达式重复出现的次数(interval quantifier)。分别表示前面子表达式重复出现

      m 次

      至少 m 次

      m 回以上、最大 n 回

  • 第1页
  • 上一页
  • 下一页
联系我们

电话: 400-123-4567

工信备案:(湘ICP备2021002763号-1)

©版权所有2018-2026

技术支持:近思之

友情链接
微信 | 微博2709619