Regex获取第二个参数组

本文关键字:数组 参数 第二个 获取 Regex | 更新日期: 2023-09-27 18:10:37

我当前的正则表达式如下:

(?<token>#gallery (?<id>[^#]+)#)

我用这个来获取一些信息。

对于#gallery d23d23d#

它将把d23d23d命名为Id组。

我需要扩展它以允许额外的参数,这样我就可以抓取

#gallery d23d23d foo#,得到d23d23dfoo作为单独的组?

我的正则表达式技能是绝望的,希望能得到一些帮助。

谢谢。

Regex获取第二个参数组

如果您想捕获两个组,请使用:

(?<token>#gallery's+(?<id>[^'s#]+)'s+(?<foo>[^'s#]+)#)

foo将包含第二个捕获组。注意,使用's来解释空格以外的空白字符,使用's+在组之间允许参数之间有多个空白字符。

要捕获0、1、两组,使用:

(?<token>#gallery(?:'s+(?<p1>[^'s#]+)(?:'s+(?<p2>[^'s#]+)(?:'s+(?<p3>[^'s#]+))?)?)?#)

p1, p2, p3将包含第一个组,当它们出现时,它们不需要token匹配。

要捕获任意数量的组(包括无组),请使用

(?<token>#gallery(?:'s+(?<id>[^'s#]+))*#)

虽然id组的Value只包含最后一个匹配的参数,但它的Captures属性将包含所有其他参数