正则表达式 - 在边界内捕获单词

Regex - Capture words within boundaries

我是 Regex 的新手,很难从网络抓取中捕获一些数据。我拥有的字符串采用以下形式:

\n\n\n\nHELLO & EVERYONE\n What's up?

我想捕获 4 \n 和其他 \n 内的所有内容。

HELLO & EVERYONE

我无法使任何东西正常工作,类似于 / \n{4}(\w+)\n /?

使用:(?:\n){4}(.*)\n

您需要将“\n”包裹在非捕获组中,否则系统会将其视为 "try and match n 4 times"。

此外,\ 是一个特殊字符,因此您必须指定 \,但请注意 "not applicable to Javascript"。

那么这个表达式的意思是,寻找 \n\n\n\n,然后从那里捕获所有内容,直到看到下一个 \n

参见:
https://regex101.com/r/yA9mV3/1

此外,如果您正在做 Javascript,这里有一个实现;

var data = "\n\n\n\nHELLO & EVERYONE\n What's up"

var matches = /(?:\n){4}(.*)\n/.exec(data);

console.log(matches[1]);

我假设 \n 实际上意味着换行。

/\n{4}(.+)\n/m

https://regex101.com/r/rG3sM4/2

您错过了多行匹配的 m

\w不匹配空格,所以最好使用.