如果有多行,我的正则表达式不起作用。我正在尝试匹配/#-----#/ 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
#/
您可以使用[^] *匹配包含换行符的任何内容
请试试这个:
function highlightMessage(message) {
return message.replace(
/\/#\s*([^]*)\s*#\//g,
(_, g) => `<span class='highlited-message'>${g}</span>`,
)
}
看起来你正试图匹配/#...#/
块的重要角色:
/\/#\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