如何编写正则表达式以匹配具有不同空格的短语?

时间:2016-02-15 13:00:08

标签: c# regex string

我的正则表达式没有给我想要的结果......

我正在尝试用一些标记为'## word / sentence ##'的单词或句子来解析一个冗长的页面。

所以我的输入是“## Unit ## random text ## Unit Role ## more random text ## Unit Role ##更随机的文本”。

所以我编写了一个代码,可以让我捕获双哈希之间的三个单词/句子。

   string strSource= "##Unit## random text ##Unit Role## more random text ##The Unit Role## even more random text";
MatchCollection col = Regex.Matches(strSource, @"##([A-Za-z0-9\s]+)\##", RegexOptions.IgnoreCase);

string[] fields = new string[col.Count];
        for (int i = 0; i < fields.Length; i++)
        {
            fields[i] = col[i].Groups[1].Value; // (Index 1 is the first group)
        }

然而,这只给我“单位”和“单位角色”。它跳过了“单位角色”。显然这是因为空间,所以我该如何纠正呢?

2 个答案:

答案 0 :(得分:1)

这个正则表达式适用于我的机器和http://regexr.com/

##[\w\s]+##

答案 1 :(得分:1)

我不认为它是你的正则表达式,而是你提取结果的方式。正则表达式正常:regex101.com/r/nX4zD5/1