• C#截取指定字符串函数


    本文转载:http://www.cnblogs.com/liufei88866/archive/2012/05/12/2497395.html

    一、通过函数方式进行获取。

    public string GetContent(string str, string start, string last, int n)
        {
            if (str.ToLower().IndexOf(start.ToLower()) >= 0)
            {
                if (str.ToLower().IndexOf(last.ToLower()) >= 0)
                {
                    switch (n)
                    {
                        //左右都截取(都取前面)(包含关键字)
                        case 1: str = str.Substring(str.ToLower().IndexOf(start.ToLower()), str.Length - str.ToLower().IndexOf(start.ToLower())); str = str.Substring(0, str.ToLower().IndexOf(last.ToLower()) + last.Length); break;
                        //左右都截取(都取前面)(去除关键字)
                        case 2: str = str.Substring(str.ToLower().IndexOf(start.ToLower()) + start.Length, str.Length - str.ToLower().IndexOf(start.ToLower()) - start.Length); str = str.Substring(0, str.ToLower().IndexOf(last.ToLower())); break;
                        //左右都截取(都取后面)(包含关键字)
                        case 3: str = str.Substring(str.ToLower().LastIndexOf(start.ToLower()), str.Length - str.ToLower().LastIndexOf(start.ToLower())); str = str.Substring(0, str.ToLower().LastIndexOf(last.ToLower()) + last.Length); break;
                        //左右都截取(都取后面)(去除关键字)
                        case 4: str = str.Substring(str.ToLower().LastIndexOf(start.ToLower()) + start.Length, str.Length - str.ToLower().LastIndexOf(start.ToLower()) - start.Length); str = str.Substring(0, str.ToLower().LastIndexOf(last.ToLower())); break;
                        //左右都截取(一前一后)(包含关键字)
                        case 5: str = str.Substring(str.ToLower().IndexOf(start.ToLower()), str.Length - str.ToLower().IndexOf(start.ToLower())); str = str.Substring(0, str.ToLower().LastIndexOf(last.ToLower()) + last.Length); break;
                        //左右都截取(一前一后)(去除关键字)
                        case 6: str = str.Substring(str.ToLower().IndexOf(start.ToLower()) + start.Length, str.Length - str.ToLower().IndexOf(start.ToLower()) - start.Length); str = str.Substring(0, str.ToLower().LastIndexOf(last.ToLower())); break;
                        default: str = ""; break;
                    }
                }
                else
                {
                    switch (n)
                    {
                        //只往左截取(取前面的)(包含关键字)
                        case 7: str = str.Substring(0, str.ToLower().IndexOf(start.ToLower()) + start.Length); break;
                        //只往左截取(取前面的)(去除关键字)
                        case 8: str = str.Substring(0, str.ToLower().IndexOf(start.ToLower())); break;
                        //只往左截取(取后面的)(包含关键字)
                        case 9: str = str.Substring(0, str.ToLower().LastIndexOf(start.ToLower()) + start.Length); break;
                        //只往左截取(取后面的)(去除关键字)
                        case 10: str = str.Substring(0, str.ToLower().LastIndexOf(start.ToLower())); break;
                        //只往右截取(取前面的)(包含关键字)
                        case 11: str = str.Substring(str.ToLower().IndexOf(start.ToLower()), str.Length - str.ToLower().IndexOf(start.ToLower())); break;
                        //只往右截取(取前面的)(去除关键字)
                        case 12: str = str.Substring(str.ToLower().IndexOf(start.ToLower()) + start.Length, str.Length - str.ToLower().IndexOf(start.ToLower()) - start.Length); break;
                        //只往右截取(取后面的)(包含关键字)
                        case 13: str = str.Substring(str.ToLower().LastIndexOf(start.ToLower()), str.Length - str.ToLower().LastIndexOf(start.ToLower())); break;
                        //只往右截取(取后面的)(去除关键字)
                        case 14: str = str.Substring(str.ToLower().LastIndexOf(start.ToLower()) + start.Length, str.Length - str.ToLower().LastIndexOf(start.ToLower()) - start.Length); break;
                        default: str = "无"; break;
                    }
                }
            }
            else
            {
                str = "无!";
            }
            return str
    
    }
    

      

    注意:获取前区的关键字不能为空!

    eg:字符串:str=“luaikawa sent a message about Black Mini 3.5CH Channel Alloy Metal Helicopter Gyro RC Radio Remote Control Toy #190879181686”

    错误写法:GetContent(str, “”, “sent a message about”, 8) 返回值为空字符串

    正确写法:GetContent(str,  “sent a message about”, “”,8) 返回值为luaikawa

    二、通过正则表达式方法:即取出以单词begin开头和单词end结尾之间的字符串

    用正则表达式获取指定的字符串http://www.cnblogs.com/Stwo/archive/2011/08/29/2158260.html

    eg:Other:mrjohnnymars sent a message about Antiqued Collar Clip Punk Blouse Shirt Metal Gold Red Black Blue Tips Pin Brooch #370926469688

    Regex:(?<=:)([.Ss]*)(?=sent a message about)


    C# 用正则表达式获取开始和结束字符串中间的值

    /// <summary>
    /// 获得字符串中开始和结束字符串中间得值
    /// </summary>
    /// <param name="str">字符串</param>
    /// <param name="s">开始</param>
    /// <param name="e">结束</param>
    /// <returns></returns> 
    public static string GetValue(string str, string s, string e)
    {
    Regex rg = new Regex("(?<=(" + s + "))[.\s\S]*?(?=(" + e + "))", RegexOptions.Multiline | RegexOptions.Singleline);
    return rg.Match(str).Value;
    }
    

      

  • 相关阅读:
    html添加遮罩层
    html绝对定位如何居中
    springboot上传文件到本地服务器
    遍历一个文件目录,把所有的子目录都列出来
    Java判断cookie中是否有某个具体的cookie
    Redis 如何打开rdb 文件
    crontab -e 如何保存退出
    linux服务器设备上没有空间
    IDEA的SonarLint插件报错Unable to create symbol table for
    使用Rome读取RSS报错,org.xml.sax.SAXParseException: 前言中不允许有内容。
  • 原文地址:https://www.cnblogs.com/51net/p/3447560.html
Copyright © 2020-2023  润新知