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)
才能分裂。
基于相关问题和其他类似答案,我需要使用展望,但我无法弄清楚如何使用它们,同时完成删除标签并在部分标签丢失时不拆分。
这可能有助于您入门。 您可能需要对其进行更多定制。
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(
上拆分(并删除((反之亦然(。