C#如何编写正则表达式

时间:2009-12-15 10:51:56

标签: c# regex

我的文件包含某些数据,如::

  

/ Pages 2 0 R / Type / Catalog / AcroForm

     

/ Count 1 / Kids [3 0 R] / Type / Pages

     

/ Filter / FlateDecode / Length 84

获取此输出的正则表达式是什么..

Pages Type Catalog AcroForm Count Kids Type Pages Filter FlateDecode Length

我想在'/'&之后获取字符串在第二个'/'或空格之前。

提前致谢。

4 个答案:

答案 0 :(得分:5)

class Program
{
    static void Main() 
    {
        string s = @"/Pages 2 0 R/Type /Catalog/AcroForm
/Count 1 /Kids [3 0 R]/Type /Pages
/Filter /FlateDecode/Length 84";

        var regex = new Regex(@"[\/]([^\s^\/]*)[\s]");
        foreach (Match item in regex.Matches(s))
        {
            Console.WriteLine(item.Groups[1].Value);
        }

    }
}

备注:不要使用正则表达式来解析PDF文件。

答案 1 :(得分:3)

\/[^\/\s]+

\/ - 斜线(逃脱)
[^ ] - 不包含...的字符类(^\/ - ...斜线...
\s - ......或空格
+ - 其中一个或多个

答案 2 :(得分:1)

这是c#:

@"/([^\s/]+)"

你可以在这里测试它只是添加引号之间的内容: http://derekslager.com/blog/posts/2007/09/a-better-dotnet-regular-expression-tester.ashx

答案 3 :(得分:1)

我不会使用正则表达式,我发现使用字符串操作更具可读性:

string[] lines = input.split(@"\");
foreach(string line in lines)
{
    if(line.contains(" "))
    {
         // Get everything before the space
    }
    else
    {
         // Get whole string
    }
}