Regex获取第二个参数组
本文关键字:数组 参数 第二个 获取 Regex | 更新日期: 2023-09-27 18:10:37
我当前的正则表达式如下:
(?<token>#gallery (?<id>[^#]+)#)
我用这个来获取一些信息。
对于#gallery d23d23d#
它将把d23d23d
命名为Id
组。
我需要扩展它以允许额外的参数,这样我就可以抓取
#gallery d23d23d foo#
,得到d23d23d
和foo
作为单独的组?
我的正则表达式技能是绝望的,希望能得到一些帮助。
谢谢。
如果您想捕获两个组,请使用:
(?<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
属性将包含所有其他参数