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

时间:2016-09-04 11:43:48

标签: regex capture

我是Regex的新手,我很难从网页抓取中获取一些数据。我所拥有的字符串的形式为:

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

我希望捕获4 \n和其他\n中的所有内容。

即。 HELLO & EVERYONE

我无法获得任何工作,这与/ \n{4}(\w+)\n /

一致

2 个答案:

答案 0 :(得分:1)

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

您需要将“\n”包装在非捕获组中,否则系统会将其视为“尝试并匹配n 4次”。

同样\是一个特殊字符,因此您必须指定\\,但请注意“不适用于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]);

答案 1 :(得分:1)

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

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

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

您错过了多线比赛的m

\w与空格不匹配,因此最好使用.