1

我有这个示例字符串:

blablablablaGROUP1blablablablaGROUP2blablablablaGROUP3blablablabla

拆分组的模式GROUP\d如您所见。

我想在这样的组中得到这个结果:

  1. GROUP1blablablabla
  2. GROUP2blablablabla
  3. GROUP3blablablabla

组的数量可以从 0 到 n。

我已经尝试过这个,但目前没有运气:

(GROUP\d.*(?=GROUP\d))

我正在使用.NET。

4

3 回答 3

1

你也可以使用

(GROUP((?!GROUP).)+)

意义

(       start of  capturing group
GROUP   Match the string literal GROUP
(
  (?!GROUP) Negative lookahead to makesure the text after the current match charater is not GROUP
.)+     Repeat the same 1 or more times

然后,您可以以 1、2、3 的形式访问这些组(根据您的输入匹配 3 个)

于 2013-08-15T04:29:40.260 回答
1

你需要类似的东西..

(GROUP\d.*)+$

..

(                        group and capture to \1 (1 or more times)
 GROUP                   match 'GROUP'
    \d                   match a digit (0-9)
     .*                  any character except newline (0 or more times)
)+                       end of \1 +(match 1 or more times)
$                        end of string
于 2013-08-15T02:49:33.300 回答
0

这将为您提供 3 个组:

(GROUP\d.*?(?=GROUP\d|$))
于 2013-08-15T00:05:14.463 回答