正则表达式以获取由标签分隔的组

时间:2013-08-14 23:59:01

标签: regex

我有这个示例字符串:

blablablablaGROUP1blablablablaGROUP2blablablablaGROUP3blablablabla

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

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

  
      
  1. GROUP1blablablabla
  2.   
  3. GROUP2blablablabla
  4.   
  5. GROUP3blablablabla
  6.   

组的数量可以是0到n。

我试过这个,但暂时没有运气:

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

我正在使用.NET。

3 个答案:

答案 0 :(得分: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

答案 1 :(得分: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次匹配)

答案 2 :(得分:0)

这将为您提供3组:

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