我正在尝试从新闻文章中提取标题。问题是新闻站点通常在标题后附加连字符和公司名称,因此我试图制作一个正则表达式以匹配空格,连字符,空格及其后的所有内容。例如:

'Minecraft - Xbox 360 Edition' future mash up packs and Xbox One updates posted - National Video Game News

火柴

- National Video Game News

我想让正则表达式匹配空格+连字符+空格及其后的所有内容,前提是它后面的所有内容最多包含4个以大写字母开头的单词。我尝试使用否定前瞻排除以小写字母开头的单词:

\s-\s(?!([a-z]+\s){3,}[a-z]+).*

但是它与空格,第一个连字符以及其后的所有内容匹配:

- Xbox 360 Edition' future mash up packs and Xbox One updates posted - National Video Game News

我不确定在这里做什么,有人可以帮忙吗?

最佳答案

为什么不以不带负面前瞻的普通方式编写它呢?

\s-(\s[A-Z][a-z]+){0,4}$

07-24 09:27