如何在javascript中使用正则表达式匹配段落?
我想要一个匹配段落的正则表达式,例如: 红棕色的狐狸做了些什么。 我不记得这段文字了 [新行] [新行] 所以,我会说废话。 [新线]废话 将返回如下数组:如何在javascript中使用正则表达式匹配段落?,javascript,regex,Javascript,Regex,我想要一个匹配段落的正则表达式,例如: 红棕色的狐狸做了些什么。 我不记得这段文字了 [新行] [新行] 所以,我会说废话。 [新线]废话 将返回如下数组: ['The red brown...', 'So instead I'll say...'] 我已经有了这个正则表达式(我偷的,嘘):/(?:[^\r\n]|\r(?!\n))+/gm 但是,此模式同时匹配换行符(一个换行符)和段落换行符(两个换行符)。如何在段落之间匹配正文,而不在单个换行符之间分割匹配?您可以使用此正则表达式/(.+)
['The red brown...', 'So instead I'll say...']
我已经有了这个正则表达式(我偷的,嘘):/(?:[^\r\n]|\r(?!\n))+/gm
但是,此模式同时匹配换行符(一个换行符)和段落换行符(两个换行符)。如何在段落之间匹配正文,而不在单个换行符之间分割匹配?您可以使用此正则表达式
/(.+)((\r?\n.+)*)/gm
仅捕获可视为段落的内容。根据您的描述,段落可以有普通文本和单行换行符。下面的示例实现了此解决方案
//原始输入
变量输入=`
红棕色的狐狸做了些什么。
我不记得这篇课文了
所以,我会说废话。
废话。
另一段
`;
文件。书写(“原名”
”);
}
pre{
背景颜色:浅灰色;
边际:2px0;
}
人力资源{
边界:无;
保证金:0;
填充:0;
}
您可以使用带有{2,}
的换行符(顺序,取决于换行符样式)拆分:
var s=“红棕色狐狸,做了些什么。\r\n我不记得这段文字。\r\n\r\n所以,我会说废话。\r\n废话。”;
log(s.split(/(?:\r\n){2,}/)对不起,我需要匹配正文,而不是实际的换行符。让我编辑一下。好的,你感兴趣的换行符样式是什么?“我已经有了这个正则表达式(我偷了,嘘)“坏塞巴斯蒂安:我已经想出了.match(/(?:。)(?:。|)(?:\r?\n | \r)(?!\r?\n | \r))+//g)
,但我不喜欢它。这很好:s.match(/。+(?:\r?\n |\r)(?!\r?\n |\r.*)*/g)
。拆分更好:var s=“红棕色狐狸,做了些什么。\r\n我不记得这段文字。\r\n\r\n所以,我会说废话。\r\n废话。”;log(s.split(/(?:\r\n){2,}/g))代码>@WiktorStribiżew谢谢,拆分成功了!这仍然匹配单换行符,而不仅仅是段落。@SebastianOlsen您希望段落内有换行符吗?是的,我希望段落内有换行符。@SebastianOlsen迟回复,但我已更新了答案。