簡體   English   中英

Javascript - 匹配多行的正則表達式

[英]Javascript - Match Regex for multiple lines

我想匹配這樣的正則表達式:

[Intro]

E|------|---4-|
B|--3h5-|-----|
C|------|-----|
D|------|---3-|
G|-1----|-----|
E|------|--0--|

讓我得到這些組:

Group1: Intro
Group2: E
Group3: ------|---4-|
Group4: B
Group5: --3h5-|-----|
Group6: C
Group7: ------|-----|
etc until the last line

總是有六行。 現在,我到了這種模式的地步:

((?:\w|\s|b|#|m){1,2})\|((?:(?:\d|\w|-|\/|^|~|\\|\(|\))+\|)+)

將這個匹配項返回給我:

Match1:
Group1: E
Group2: ------|---4-|
Match2:
Group1: B
Group2: --3h5-|-----|

etc until last line

我的問題是,我如何匹配正則表達式以僅匹配六行,每行之間有一個換行符(也許使用我寫的模式並在開始或結束時添加換行符或其他東西)

以及如何獲得距六行兩個換行符的 [Intro] 標簽?

一種方法是:-

  • 先用換行符分割字符串
  • 刪除所有虛假值
  • 映射數組並替換不需要的字符
  • 展平陣列

 let str = `[Intro] E|------|---4-| B|--3h5-|-----| C|------|-----| D|------|---3-| G|-1----|-----| E|------|--0--|` let final = str.split('\\n') .filter(Boolean) .map(v=> v.replace(/[\\]\\[]/g,'').match(/^[^|]+\\||.+/g)) .flat() console.log(final)

暫無
暫無

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

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