簡體   English   中英

JS Regex:將內容包裝在附加行中定義的多個標簽中嗎?

[英]JS Regex: Wrap content in multiple tags defined in appended lines?

我正在嘗試使用JavaScript String replace替換內容,如下所示:

從:

line 1
line 2
! foo
! bar
! baz

至:

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

即,將第一個“!”標簽中的每一行換行,將其余標簽換行。 顯然應該適用於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)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM