【问题标题】:Regexp : repeat matching正则表达式:重复匹配
【发布时间】:2012-07-10 08:11:53
【问题描述】:

我正在尝试创建一个正则表达式,它可以包含这三个元素中的一些元素 0...X 次:

/cat1/var1

/cat2/var2

/cat3/var3

这是我目前得到的:

((cat1|cat2|cat3)/(?P<var>\w+))*

在这个示例字符串中,它只匹配第一个匹配项:http://url.dev/cat1/aaaaa/cat1/bbbbb/cat2/ccccc

在这个示例中,cat1 也出现了两次,我想知道是否可以获取这两个值。

一些我想要匹配的样本:

http://url.dev/cat1/aaaaa/cat1/bbbbb/cat2/ccccc/cat3/ddddd/cat3/eeeee

http://url.dev/cat1/aaaaa

http://url.dev/cat2/aaaaa/cat3/bbbbb

【问题讨论】:

    标签: php regex preg-match


    【解决方案1】:

    你能用吗

    (cat\d/(?P<var\d>\w+))*
    

    它将匹配所有出现的 cat/var

    [编辑]

    原来如此:

    /(cat\d\/\w+)/g
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-10-31
    • 2020-04-09
    • 1970-01-01
    • 1970-01-01
    • 2015-03-24
    • 1970-01-01
    相关资源
    最近更新 更多