我希望将两个字符串之间的字符串与Regex(包括换行符)匹配。
例如,我有下一个字符串:
$ sysctl kern.hv_support
kern.hv_support: 1
我需要在{count, plural,
one {apple}
other {apples}
}
和plural,
之间添加字符串。它将是one
。
我试过这个正则表达式:
\n*space**space*
它有效,但不适用于JS。如何用JavaScript做到这一点?
答案 0 :(得分:3)
要匹配包含换行符在内的所有内容,您可以使用[\s\S]
或[^]
var str = `{count, plural,
one {apple}
other {apples}
} `;
console.log(str.match(/(?:plural,)([\s\S]*?)(?:one)/g));
console.log(str.match(/(?:plural,)([^]*?)(?:one)/g));

答案 1 :(得分:1)
它不起作用,因为您使用错误的正则表达式引擎进行测试。
`/s` does not exist in the JS regex engine, only in pcre
必须是这样的:
/(?:plural,)((.|\n)*?)(?:one)/g
希望它有所帮助。