c#正则表达式在=

c#正则表达式在=,c#,regex,text-extraction,C#,Regex,Text Extraction,找不到更好的标题,但我需要一个正则表达式从下面的示例中提取链接 snip... flashvars.image_url = 'http://domain.com/test.jpg' ..snip 假设正则表达式是最好的方法 谢谢编辑:与您编辑的问题相匹配的新正则表达式: 您需要在=之后匹配引号之间的内容,对吗 @"(?<==\s*')[^']*(?=')" 一个简单的正则表达式是@“=\s*”(.*)”考虑下面的示例代码。它显示了如何从您提供的字符串中提取。但我已经在字符串上展开了一

找不到更好的标题,但我需要一个正则表达式从下面的示例中提取链接

snip...  flashvars.image_url = 'http://domain.com/test.jpg' ..snip
假设正则表达式是最好的方法


谢谢编辑:与您编辑的问题相匹配的新正则表达式:

您需要在
=
之后匹配引号之间的内容,对吗

@"(?<==\s*')[^']*(?=')"

一个简单的正则表达式是
@“=\s*”(.*)”

考虑下面的示例代码。它显示了如何从您提供的字符串中提取。但我已经在字符串上展开了一些。通常,.*的使用过于全面(如下例所示)

主要的一点是,有几种方法可以满足你的要求,给出的第一个答案使用“环顾四周”,而第二个建议使用“小组”方法。选择主要取决于您的实际数据

        string[] tests = {
                @"snip...  flashvars.image_url = 'http://domain.com/test.jpg' ..snip",
                @"snip...  flashvars.image_url = 'http://domain.com/test.jpg' flashvars2.image_url = 'http://someother.domain.com/test.jpg'",
        };
        string[] patterns = {
                @"(?<==\s')[^']*(?=')",
                @"=\s*'(.*)'",
                @"=\s*'([^']*)'",
                             };
        foreach (string pattern in patterns)
        {
            Console.WriteLine();
            foreach (string test in tests)
                foreach (Match m in Regex.Matches(test, pattern))
                {
                    if (m.Groups.Count > 1)
                        Console.WriteLine("{0}", m.Groups[1].Value);
                    else
                        Console.WriteLine("{0}", m.Value);
                }
        }
string[]测试={
@“剪断…flashvars.image\u url=”http://domain.com/test.jpg“…剪断”,
@“剪断…flashvars.image\u url=”http://domain.com/test.jpg'flashvars2.image\u url='1!'http://someother.domain.com/test.jpg'",
};
字符串[]模式={

@(?我对问题进行了编辑,以反映我的意图。如果我弄错了,请提前道歉。
        string[] tests = {
                @"snip...  flashvars.image_url = 'http://domain.com/test.jpg' ..snip",
                @"snip...  flashvars.image_url = 'http://domain.com/test.jpg' flashvars2.image_url = 'http://someother.domain.com/test.jpg'",
        };
        string[] patterns = {
                @"(?<==\s')[^']*(?=')",
                @"=\s*'(.*)'",
                @"=\s*'([^']*)'",
                             };
        foreach (string pattern in patterns)
        {
            Console.WriteLine();
            foreach (string test in tests)
                foreach (Match m in Regex.Matches(test, pattern))
                {
                    if (m.Groups.Count > 1)
                        Console.WriteLine("{0}", m.Groups[1].Value);
                    else
                        Console.WriteLine("{0}", m.Value);
                }
        }