正则表达式,匹配包括多行

问题描述 投票:0回答:2

如果有多行,我的正则表达式不起作用。我正在尝试匹配/#-----#/ symbols中的所有内容。在一行中它工作正常。你可以在这里查看:https://regex101.com/r/yZTXwh/3

码:

highlightMessage(message) {
    return message.replace(
      /\/#\s*(.*?)\s*#\//g,
      (_, g) => `<span class='highlited-message'>${g}</span>`,
    )
  }

文本:

Hello
 /# my name
is
Mike
nice to meet you

 #/ 
javascript regex reactjs
2个回答
0
投票

您可以使用[^] *匹配包含换行符的任何内容

请试试这个:

function highlightMessage(message) {
    return message.replace(
      /\/#\s*([^]*)\s*#\//g,
      (_, g) => `<span class='highlited-message'>${g}</span>`,
    )
  }

0
投票

看起来你正试图匹配/#...#/块的重要角色:

/\/#\s*((?:.|\n)*?)\s*#\//gm

let s = `Hello
 /# my name
is
Mike
nice to meet you

 #/ 
 bar
 /# single-line #/
 foo
 /#
 
 multi-line
 
 #/
 baz
 `;
 
 let r = /\/#\s*((?:.|\n)*?)\s*#\//gm;
 let a;
 while ((a = r.exec(s)) !== null)
   console.log(a[1]);

这是一个regex101

© www.soinside.com 2019 - 2024. All rights reserved.