C# 正则表达式 - 拆分并保持拆分

本文关键字:拆分 正则表达式 | 更新日期: 2023-09-27 18:34:57

相关:https://stackoverflow.com/a/2910549/194031

我有一个字符串,如下所示:

"abc defgh <!inc(C:'my files'abc.txt)!>kdi kdkd<!inc(C:'my files'abc.txt)!>"

我想得到:

["abc defgh ", "C:'my files'abc.txt", "kdi kdkd", "C:'my files'abc.txt"]

另外,我不要

"abc <!inc(C:'my files'abc.txt adf" (missing end bracket) 

才能分裂。

基于相关问题和其他类似答案,我需要使用展望,但我无法弄清楚如何使用它们,同时完成删除标签并在部分标签丢失时不拆分。

C# 正则表达式 - 拆分并保持拆分

这可能有助于您入门。 您可能需要对其进行更多定制。

Regex.Split("...", @"<!inc'((?=.*?')!>)|(?<=<!inc'(.*?)')!>");

表达式细分

<!inc'(
(?=.*?')!>)    // this is the positive lookahead to make sure that the string ')!>`
               // exists before counting this as a match
|
(?<=<!inc'(.*?) // positive look behind to make sure '<!inc(' shows up before
')!>         
这是

你的正则表达式

<!inc'((?=[^)]+')!>)|(?<=<!inc'([^)]+)')!>

当且仅当它具有匹配的)!>时,它在每个<!inc(上拆分(并删除((反之亦然(。