【发布时间】:2020-06-17 13:46:39
【问题描述】:
我目前有this regex:
\[(?:\w+\*?\s+)?([^][]+)]
我想添加另一个捕获组,这样我就可以捕获组之前的文本值。
例如:
Je naam (verplicht) [text* your-test]
我的正则表达式当前捕获[text* your-test]。我想添加另一个捕获“Je naam (verplicht)”部分的组。
我怎样才能做到这一点?
【问题讨论】:
我目前有this regex:
\[(?:\w+\*?\s+)?([^][]+)]
我想添加另一个捕获组,这样我就可以捕获组之前的文本值。
例如:
Je naam (verplicht) [text* your-test]
我的正则表达式当前捕获[text* your-test]。我想添加另一个捕获“Je naam (verplicht)”部分的组。
我怎样才能做到这一点?
【问题讨论】:
您可以将此正则表达式与其他捕获组一起使用:
([^][\h]+(?:\h+[^][\h]+)*)?\h+\[(?:\w+\*?\h+)?([^][]+)]
([^][\h]+(?:\h+[^][\h]+)*)? 是新的可选捕获组,它匹配 [...] 之前的文本并将其捕获到一个单独的组中。[^][\h]+ 匹配任何不是[、] 和空格的字符中的一个或多个。【讨论】:
'/([^][\\h]+(?:\\h+[^][\\h]+)*)?\\h+\\[(?:\\w+\\*?\\h+)?([^][]+)]/'