none
正则表达式提取字符串 RRS feed

  • 问题

  • color:#ff0000;font-size:24px;left:10px;

    怎样获得那个10px中的10?

    是不是正则表达式不用来找2个字符串中间的值?

    请高手帮忙,谢谢

    2011年12月29日 7:17

答案

  • 不一定要用正则表达式

     

        string str = @"color:#ff0000;font-size:24px;left:10px;";
            string[] arr = str.Split(new string[]{";"},StringSplitOptions.RemoveEmptyEntries);
            //left:10px
            arr = arr[2].Split(new string[]{":"},StringSplitOptions.RemoveEmptyEntries);
            //arr[1] => 10px
    
            string result = arr[1].Replace("px", "");
            Console.WriteLine(result);
    

     



    很高兴看到你第一个回复,谢谢。

    但是你的这个解法我也会,但我需要正则表达式的解法,这个字符串只是个例子,我要的是通用方案,是一类这种情况的需求,这个特殊点可以splite,哪天变了就没招了。

    谢谢

    Allen


    (晚点我给你标成答案啊)


    那试试这个吧

    string input = @"color:#ff0000;font-size:24px;left:10px;";
                 
                string pattern = @"left:(?<myGroup>\d{1,})px;";
                Regex reg = new Regex(pattern);
                Match m = reg.Match(input);
                //show Result
                Console.WriteLine(m.Groups["myGroup"].Value);
    

     


    • 已标记为答案 Allen PPL 2011年12月29日 12:53
    2011年12月29日 12:25
  • string result = Regex.Match(your_html,@"(?<=(?i:left):)\d+").Value;
    



    2011 c# mvp China. *George读起来像不像“饺子”?我爱吃饺子,我叫George。
    2011年12月29日 15:19
    版主
  • 不一定要用正则表达式

     

        string str = @"color:#ff0000;font-size:24px;left:10px;";
            string[] arr = str.Split(new string[]{";"},StringSplitOptions.RemoveEmptyEntries);
            //left:10px
            arr = arr[2].Split(new string[]{":"},StringSplitOptions.RemoveEmptyEntries);
            //arr[1] => 10px
    
            string result = arr[1].Replace("px", "");
            Console.WriteLine(result);
    

     


    • 已标记为答案 Allen PPL 2011年12月29日 12:53
    2011年12月29日 7:31

全部回复

  • 不一定要用正则表达式

     

        string str = @"color:#ff0000;font-size:24px;left:10px;";
            string[] arr = str.Split(new string[]{";"},StringSplitOptions.RemoveEmptyEntries);
            //left:10px
            arr = arr[2].Split(new string[]{":"},StringSplitOptions.RemoveEmptyEntries);
            //arr[1] => 10px
    
            string result = arr[1].Replace("px", "");
            Console.WriteLine(result);
    

     


    • 已标记为答案 Allen PPL 2011年12月29日 12:53
    2011年12月29日 7:31
  • 不一定要用正则表达式

     

        string str = @"color:#ff0000;font-size:24px;left:10px;";
            string[] arr = str.Split(new string[]{";"},StringSplitOptions.RemoveEmptyEntries);
            //left:10px
            arr = arr[2].Split(new string[]{":"},StringSplitOptions.RemoveEmptyEntries);
            //arr[1] => 10px
    
            string result = arr[1].Replace("px", "");
            Console.WriteLine(result);
    

     



    很高兴看到你第一个回复,谢谢。

    但是你的这个解法我也会,但我需要正则表达式的解法,这个字符串只是个例子,我要的是通用方案,是一类这种情况的需求,这个特殊点可以splite,哪天变了就没招了。

    谢谢

    Allen


    (晚点我给你标成答案啊)
    • 已编辑 Allen PPL 2011年12月29日 10:18 增加一句话
    2011年12月29日 10:17
  • 不一定要用正则表达式

     

        string str = @"color:#ff0000;font-size:24px;left:10px;";
            string[] arr = str.Split(new string[]{";"},StringSplitOptions.RemoveEmptyEntries);
            //left:10px
            arr = arr[2].Split(new string[]{":"},StringSplitOptions.RemoveEmptyEntries);
            //arr[1] => 10px
    
            string result = arr[1].Replace("px", "");
            Console.WriteLine(result);
    

     



    很高兴看到你第一个回复,谢谢。

    但是你的这个解法我也会,但我需要正则表达式的解法,这个字符串只是个例子,我要的是通用方案,是一类这种情况的需求,这个特殊点可以splite,哪天变了就没招了。

    谢谢

    Allen


    (晚点我给你标成答案啊)


    那试试这个吧

    string input = @"color:#ff0000;font-size:24px;left:10px;";
                 
                string pattern = @"left:(?<myGroup>\d{1,})px;";
                Regex reg = new Regex(pattern);
                Match m = reg.Match(input);
                //show Result
                Console.WriteLine(m.Groups["myGroup"].Value);
    

     


    • 已标记为答案 Allen PPL 2011年12月29日 12:53
    2011年12月29日 12:25
  • string result = Regex.Match(your_html,@"(?<=(?i:left):)\d+").Value;
    



    2011 c# mvp China. *George读起来像不像“饺子”?我爱吃饺子,我叫George。
    2011年12月29日 15:19
    版主