繁体   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