帮酷LOGO
0 0 评论
  • 显示原文与译文双语对照的内容
文章标签:SUP  Deprecated  proj  DEP  ANY  
Regexy - collection of useful regular expressions for ruby and rails

  • 源代码名称:regexy
  • 源代码网址:http://www.github.com/vladimir-tikhonov/regexy
  • regexy源代码文档
  • regexy源代码下载
  • Git URL:
    git://www.github.com/vladimir-tikhonov/regexy.git
  • Git Clone代码到本地:
    git clone http://www.github.com/vladimir-tikhonov/regexy
  • Subversion代码到本地:
    $ svn co --depth empty http://www.github.com/vladimir-tikhonov/regexy
    Checked out revision 1.
    $ cd repo
    $ svn up trunk
    
  • Regexy

    Gem VersionBuild StatusDependency StatusCode ClimateCoverage Status

    Regexy是包含大量常用使用 正规表达式 ( 例如电子邮件或者ip地址验证)的ruby gem,并提供了一个友好的语法来组合它们。

    目录

    安装

    将此行添加到你的应用程序的Gemfile中:

    gem 'regexy'

    然后执行:

     
    $ bundle
    
    
    
     

    或者将它的自己安装为:

    
    $ gem install regexy
    
    
    
    

    用法

    Regexy::Regexp

    原始 Regexp类的包装。 你可以放心地用它代替原来的。

    r1 =Regexy::Regexp.new('foo') # could be initialized from stringr2 =Regexy::Regexp.new(/foo/) # from regexpr3 =Regexy::Regexp.new(r2) # or even from another Regexy::Regexpr4 =Regexy::Regexp.new('foo', Regexp::IGNORECASE) # pass additional configuration'abcfoocde'=~ r1 # => 3r2.match 'abcfoocde'# => #<MatchData"foo">

    获取原始正则表达式

    在methods方法中,检查它是否为参数 is_a Regexp实例( 例如 String#scan ) 你可以使用 internal_regexp 方法。

    str ='Email me at first@mail.com or second@mail.com'str.scan(Regexy::Web::Email.new.unbound.internal_regexp).map(&:first) # => ["first@mail.com","second@mail.com"]

    组合 正规表达式

    你可以使用 | 方法( 或者 or 这是它的别名) 将 正规表达式 与 | 运算符组合。 注意,正则表达式选项将被合并。

    Regexy::Regexp.new('foo') |Regexy::Regexp.new(/bar/) # =>/foo|bar/Regexy::Regexp.new(/foo/i) |/bar/x# =>/foo|bar/ixRegexy::Regexp.new(/foo/i).or 'bar'# =>/foo|bar/iany_ipv4 =Regexy::Web::IPv4.new(:normal) |Regexy::Web::IPv4.new(:with_port) # matches ip w and wo port

    也可以使用 + 方法直接连接两个表达式,也可以是别名 and_then。 注意,从第一个 正规表达式 删除的尾部 z,并从第2 个 正规表达式 中。

    Regexy::Regexp.new('foo') +Regexy::Regexp.new(/bar/) # =>/foobar/Regexy::Regexp.new(/fooz/i) +/bar/# =>/foobar/iRegexy::Regexp.new(/foo/).and_then 'Abar'# =>/foobar/Regexy::Regexp.new(/Afooz/).and_then 'Abarz'# =>/Afoobarz/

    绑定和未绑定 正规表达式

    所有在 正规表达式 中的构建都以 A...z 形式提供,这意味着它们只匹配整个字符串。 你可以使用 boundunbound 方法删除或者添加字符串边界。 可选参数 method 可用( 默认情况下为 :both ) - 仅用于操作前导 A:left 和尾随 z:right

    Regexy::Regexp.new('/Afoo/z').unbound(:left) # =>/fooz/Regexy::Regexp.new(/foo/i).bound # =>/Afooz/i# Example - find all ip addresses in the stringstr ='0.0.0.0 and 255.255.255.255 are both valid ip addresses'str.scan(Regexy::Web::IPv4.new.unbound.internal_regexp).flatten # => ["0.0.0.0","255.255.255.255"]

    regexy:: web:: 电子邮件

    为电子邮件地址验证( 使用unicode支持) 生成 正规表达式。 可用选项:用于一般完整性检查的:relaxed,具有一些附加长度和ip地址验证的:normal ( 这是默认的) 和用于paranoids的:strict

    r1 =Regexy::Web::Email.new(:relaxed)
    r2 =Regexy::Web::Email.new(:normal) # does not match 'f@s.c' and 'invalid-ip@127.0.0.1.26'r2 =Regexy::Web::Email.new(:strict) # does not match 'hans,peter@example.com' and"partially."quoted"@sld.com"

    regexy:: web:: 标签

    为匹配的Hashtags生成 正规表达式。 标签可以包含任何 UTF-8 字母数字字符,加上下划线符号。 标签不能只是数字,它必须至少有一个alpahanumeric字符或者下划线符号。

    r1 =Regexy::Web::Hashtag.new# matches '#hash_tags'

    regexy:: web:: ipv4

    生成用于匹配IPv4地址的正规表达式。 可用选项::normal ( 默认情况) 用于匹配没有端口和 :with_port的,用于猜测。

    r1 =Regexy::Web::IPv4.new# matches '127.0.0.1' but not '127.0.0.1:80'r1 =Regexy::Web::IPv4.new(:with_port) # matches '127.0.0.1:80' but not '127.0.0.1'any_ipv4 =Regexy::Web::IPv4.new(:normal) |Regexy::Web::IPv4.new(:with_port) # matches ip w and wo port

    web:: web:: web

    生成用于匹配IPv6地址( 支持标准的。混合的和压缩的符号)的正规表达式。 在 :normal ( 默认情况) 和 :with_port 模式下工作。

    r1 =Regexy::Web::IPv6.new# matches '::1', '2001:DB8::8:800:200C:417A' and '::FFFF:129.144.52.38'r1 =Regexy::Web::IPv6.new(:with_port) # matches '[::1]:80' and so onany_ipv6 =Regexy::Web::IPv6.new(:normal) |Regexy::Web::IPv6.new(:with_port) # matches ip w and wo port

    web:: web:: 网站

    生成用于匹配Url地址( 使用unicode支持)的正规表达式。

    r1 =Regexy::Web::Url.new# matches 'http://foo.com', 'www.foo.com' and 'foo.com'

    regexy:: 站点:: 主机名

    为匹配主机名( 使用unicode支持) 生成 正规表达式。

    r1 =Regexy::Web::HostName.new# matches 'foo.com', 'www.foo.com' and 'киррилический.домен.рф' but not `127.0.0.1`

    regexy:: 文本:: 微笑

    生成匹配微笑的正规表达式。

    r =Regexy::Text::Smile.new# matches ':)', ':=)', 'xD' and so on# Find all smiles in textstr ="Check out http://foo.com :). It's awesome :D"str.scan(r.unbound.internal_regexp).map(&:first) # => [":)",":D"] 

    regexy:: 文本:: 表情符号

    为匹配符号生成 正规表达式。

     
    r   
    =   
      
    Regexy   
    ::   
    文本   
    ::   
    表情符号   
       
    新建   
      
      
    #   
    匹配"'   
     


    文章标签:proj  SUP  DEP  Deprecated  ANY  

    Copyright © 2011 HelpLib All rights reserved.    知识分享协议 京ICP备05059198号-3  |  如果智培  |  酷兔英语