可以在php中嵌套正则表达式吗

可以在php中嵌套正则表达式吗,php,regex,nested,Php,Regex,Nested,所以我有这个字符串: http://www.whatever.com/whatever-c89-ca9840-cu3849 是否可以使用唯一的正则表达式(preg_match)来: 隔离-ca9840 提取号码9840 这就是我现在正在做的: preg_match('/-cu[\d]+-/',$uri,$mathes)不,就是这么简单。正则表达式除了所处的状态外没有内存 你试过什么?我想不出当你谈论嵌套正则表达式时你在想什么。preg_match('/-cu[\d]+-/',$uri,$mat

所以我有这个字符串:

http://www.whatever.com/whatever-c89-ca9840-cu3849
是否可以使用唯一的正则表达式(preg_match)来:

  • 隔离
    -ca9840
  • 提取号码
    9840
  • 这就是我现在正在做的:


    preg_match('/-cu[\d]+-/',$uri,$mathes)

    不,就是这么简单。正则表达式除了所处的状态外没有内存

    你试过什么?我想不出当你谈论嵌套正则表达式时你在想什么。preg_match('/-cu[\d]+-/',$uri,$mathes,preg_OFFSET_CAPTURE)@Rimbuaj,:不要把它放在评论中,编辑你的问题并在那里添加新的信息。艾伦·摩尔完成了!(好听的名字)对不起,我在regex中读到了backreference,它实际上是这样说的。你能解释一下吗?我的意思是,有一个“概念”我必须学习吗?这是我能想到的正则表达式最基本的例子。所以,为了回答您的问题,我建议您学习手册的部分或您选择的regexp教程。。解析URL时,使用
    /
    往往会让人恼火;-)
    <?php
    
    $url = 'http://www.whatever.com/whatever-c89-ca9840-cu3849';
    if( preg_match('@-ca(\d+)@', $url, $matches) ){
        var_dump($matches);
    }