• 正则表达式之捕获重用


    正则表达式中可以进行重用的表达方式

    (x)

    匹配 'x' 并且记住匹配项,就像下面的例子展示的那样。括号被称为 捕获括号。

    模式/(foo) (bar) 1 2/中的 '(foo)' 和 '(bar)' 匹配并记住字符串 "foo bar foo bar" 中前两个单词。模式中的 1 和 2 匹配字符串的后两个单词。注意 1、2、 是用在正则表达式的匹配环节。在正则表达式的替换环节,则要使用像 $1、$2、$n 这样的语法,例如,'bar foo'.replace( /(...) (...)/, '$2 $1' )。

    (?:x)

    匹配 'x' 但是不记住匹配项。这种叫作非捕获括号,使得你能够定义为与正则表达式运算符一起使用的子表达式。来看示例表达式 /(?:foo){1,2}/。如果表达式是 /foo{1,2}/,{1,2}将只对 ‘foo’ 的最后一个字符 ’o‘ 生效。如果使用非捕获括号,则{1,2}会匹配整个 ‘foo’ 单词。

    例子讲解:

    /(?:d{3}|(d{3}))([-/.])d{3}1d{4}/; 
    

     (?:d{3}|(d{3})) 表示不记住捕获

     ([-/.])表示记住捕获

      1表示重用前面捕获到的格式,1表示第一个捕获到的,2表示第二个捕获到的

    所以符合该正则表达式的数据为 (123)-123-1234 或者 123-123-1234

    在线正则表达式测试

  • 相关阅读:
    SKAction类
    SpriteKit所有的类
    Reachability下载地址
    IOS学习教程
    SpriteKit游戏开发
    APP开发者到期续费说明
    Unique Paths
    Letter Combinations of a Phone Number
    Reverse Nodes in k-Group
    Remove Nth Node From End of List
  • 原文地址:https://www.cnblogs.com/afel/p/9293036.html
Copyright © 2020-2023  润新知