我的文字格式如下:
(empty line)
stuff here
more stuff here
maybe even more here
(empty line)
stuff here
more stuff here
maybe even more here
(empty line)
我需要抓住空行之间的内容。我试过^\s*$.+?^\s*$
,但它似乎无法正常工作。
答案 0 :(得分:0)
您可以使用以下正则表达式:
(?:\r?\n|^)((?:\r?\n|.)+?)(?=\r?\n\r?\n|$)
(?:\r?\n|^)
匹配字符串的开头或换行符(Windows为\r\n
,UNIX为\n
)((?:\r?\n|.)+?)
匹配包含换行符在内的任何字符至少一次,但非贪婪,将其包含在一个组中$1
(?=\r?\n\r?\n|$)
标记双线中断或字符串$
的结尾作为匹配结束。这是通过积极的前瞻来完成的,以防止在比赛中包含双线中断。/g
。以下是一个实例:https://regex101.com/r/69gLk9/1
您还可以将许多编程语言的split()
函数与以下正则表达式结合使用:
\r?\n\r?\n
var text = "This is text.\nThis is text.\nThis is text.\nThis is text.\nThis is text.\n\nThis is text.\nThis is text.\nThis is text.\n\nThis is text.\nThis is text.\n\nThis is text.\nThis is text.";
var regex = /\r?\n\r?\n/g;
var match = text.split(regex);
console.log(match);
答案 1 :(得分:0)
This是您问题的答案。
`/^\n((?:\n|.)*?)\n$/gm`
^\n
从行尾开始,因此行必须为空
((?:\n|.)*?)
捕获任何新行或任何字母的数量
\n$
以结束行字符
请勿忘记添加global
和multiline
标记