gpt4 book ai didi

javascript - JS 正则表达式 : Wrap content in multiple tags defined in appended lines?

转载 作者:行者123 更新时间:2023-12-01 01:04:35 29 4
gpt4 key购买 nike

我正在尝试使用 JavaScript 字符串替换来替换内容,如下所示:

来自:

line 1
line 2
! foo
! bar
! baz

致:

<baz>
<bar>
<foo>line 1</foo>
<foo>line 2</foo>
</bar>
</baz>

即,将每一行包装在第一个“!”的 block 中tag,将剩余的标签包裹在整个 block 周围。显然应该适用于 1+ 内容和“!”行。

有谁知道如何使用捕获组一步完成此操作,或者这需要更复杂的东西吗?

谢谢。

最佳答案

您可以匹配各个部分,进行拆分,然后将其构建为您想要的内容。

/^((?:(?!\r?\n!)[\S\s])+)\s*\r?\n![ \t]*(.+)\s*\r?\n![ \t]*((?:(?!\s*\r?\n!)[\S\s](?:\s*\r?\n![ \t]*)?)+)/

https://regex101.com/r/Ji5ys6/1

组 1 = 行,在 \s*\r?\n\s*
上分割第 2 组 = foo
第 3 组 = bar, baz,...\s*!\s*

上分割
 ^ 
( # (1 start), line1, line 2, ...
(?:
(?! \r? \n ! )
[\S\s]
)+
) # (1 end)
\s* \r? \n ! [ \t]*
( .+ ) # (2), foo
\s* \r? \n ! [ \t]*
( # (3 start), bar, baz, ...
(?:
(?! \s* \r? \n ! )
[\S\s]
(?: \s* \r? \n ! [ \t]* )?
)+
) # (3 end)

关于javascript - JS 正则表达式 : Wrap content in multiple tags defined in appended lines?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55764226/

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