正则表达式C# - 之前,之间和之后的所有内容[T] [/ T]

时间:2016-11-02 02:51:28

标签: c# regex parsing

我是这个正则表达式

([\s\S]*?)\[T\]([\s\S]*?)\[\/T\]([\s\s]*?)

应该在[T][\T]之前,之间和之后提取所有内容,但我总是将第三个捕获组清空。

我的文字是:

<h1>HelloWorld</h1>
[T]
 <h2>I'm Inside</h2
[/T]
<h1>HelloWorld</h1>
[T]
 <h2>I'm Inside</h2
[/T]
<h3>By World</h3>

我已经使用了RegexrRegex101并得出结论,错误发生在最后一个捕获组?的{​​{1}}中,因为我正在做([\s\S]*?)懒惰。但是,如果我删除它,它会将所有内容分组为一个匹配而不是两个。

修改

基本上我想做像

这样的事情
*

任何帮助表示感谢。

1 个答案:

答案 0 :(得分:0)

由于您的问题标题与实际输出示例有争议,我的答案是基于实际所需的输出。

要获得所需的输出,您必须查看给定文本中的模式。要捕获的文本始终在[T] [/ T]之间。但它始终位于&gt; ... &lt;

之间

基于这个逻辑,我为你做了一个例子:

{{1}}