gpt4 book ai didi

c# - 正则表达式匹配以提取多行文本区域 (C#)

转载 作者:行者123 更新时间:2023-12-03 03:19:13 24 4
gpt4 key购买 nike

我希望捕获按以下格式创建的大型文本 block 中的文本区域:

...
[region:region-name]
multi line
text block
[/region]
...
[region:another-region-name]
more
multi-line text
[/region]

我已经差不多解决了

\[region:(?'link'.*)\](?'text'(.|[\r\n])*)\[/region\]

如果整个文本中只有一个区域,则此方法有效。但是,当有多个时,这只会给我一个 block ,而每个其他“区域”都包含在该 block 的“文本”中。我有一种感觉,这需要使用负向展望来解决,但作为正则表达式的非专业人士,我不知道如何修改上面的内容以正确执行此操作。有人可以帮忙吗?

最佳答案

您无需先行即可执行此操作:

\[region:(?'link'.*)\](?'text'(?s).*?)\[/region\]

附加的 ? 使 * 量词变得惰性,因此它将匹配尽可能少的字符。并且 (?s) 允许点匹配此位置之后的换行符,因此您不必使用 (.|[\r\n]) 结构(另一种选择是[\s\S])。

关于c# - 正则表达式匹配以提取多行文本区域 (C#),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5007490/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com