仅使用一个正则表达式匹配段落中的3个单词

时间:2018-05-21 12:37:55

标签: javascript regex

我很难完全使用正则表达式匹配多个单词,

这是我的文字,

  谷歌正在寻求拆除Spotify-Apple在音乐领域的“双头垄断”   分发,本周第四次改革其音乐服务   试图说服YouTube的数十亿用户付费。

     谷歌周二推出新的音乐订阅服务   将通过YouTube最昂贵的广告活动推广它。   这项名为YouTube音乐的服务模仿Spotify模型:那里   将是一个免费的,广告支持的层,功能更有限,并且a   每月10美元的订阅,没有广告和额外的   功能

我希望匹配3个字Spotify-AppleUS10extra functions,我希望其他所有内容都被忽略我试过了

\bSpotify-Apple\b(.|\n)*?\bUS10\b(.|\n)*extra functions

它可以突出显示所有三个短语,但也突出显示它们之间的所有文本。我怎么能只匹配三个单词而忽略其他一切呢? 我试图忽略它,就像使用^一样,

\bSpotify-Apple\b^(.|\n)*?\bUS10\b^(.|\n)*extra functions

2 个答案:

答案 0 :(得分:5)

如何

/\b(Spotify-Apple|US10|extra functions)\b/g

演示:https://regex101.com/r/1Z96tS/3

答案 1 :(得分:2)

var file = //file path
var sb = new StringBuilder();
var lineNum = 1;
var output = string.Empty;

using (var reader = new StreamReader(file))
{
    while (!reader.EndOfStream)
    {
        var line = reader.ReadLine();
        if (lineNum % 3 == 0)
        {
            output += sb.ToString() + "\n";
            sb.Clear();
        }
        else
            sb.Append(line);

        lineNum++;
    }
}

richTextBox1.Text = output;

这会给出您想要匹配的三个单词。