ASP.NET截取字符串函数(用于网页内容分析与采集

public string GetContent(string str, string start, string last, int n)
      {
          if (str.ToLower().IndexOf(start.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(0, str.ToLower().IndexOf(start.ToLower()) + start.Length); break;
                  //只往左截取(取前面的)(去除关键字)
                  case 6: str = str.Substring(0, str.ToLower().IndexOf(start.ToLower())); break;
                  //只往左截取(取后面的)(包含关键字)
                  case 7: str = str.Substring(0, str.ToLower().LastIndexOf(start.ToLower()) +start.Length); break;
                  //只往左截取(取后面的)(去除关键字)
                  case 8: str = str.Substring(0, str.ToLower().LastIndexOf(start.ToLower())); break;
                  //只往右截取(取前面的)(包含关键字)
                  case 9: str = str.Substring(str.ToLower().IndexOf(start.ToLower()), str.Length - str.ToLower().IndexOf(start.ToLower())); break;
                  //只往右截取(取前面的)(去除关键字)
                  case 10: str = str.Substring(str.ToLower().IndexOf(start.ToLower()) + start.Length, str.Length - str.ToLower().IndexOf(start.ToLower()) - start.Length); break;
                  //只往右截取(取后面的)(包含关键字)
                  case 11: str = str.Substring(str.ToLower().LastIndexOf(start.ToLower()), str.Length - str.ToLower().LastIndexOf(start.ToLower())); break;
                  //只往右截取(取后面的)(去除关键字)
                  case 12: str = str.Substring(str.ToLower().LastIndexOf(start.ToLower())+start.Length, str.Length - str.ToLower().LastIndexOf(start.ToLower())-start.Length); break;
                  //左右都截取(一前一后)(包含关键字)
                  case 13: 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 14: 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: break;
              }
          }
          return str;
      }



改进版:

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;
      } 
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
函数 语法 功能 Len Len(string|varname) 返回字符串内字符的数目,或是存储一变量所需的字节数。 Trim Trim(string) 将字符串前后的空格去掉 Ltrim Ltrim(string) 将字符串前面的空格去掉 Rtrim Rtrim(string) 将字符串后面的空格去掉 Mid Mid(string,start,length) 从string字符串的start字符开始得length长度的字符串,如果省略第三个参数表示从start字符开始到字符串结尾的字符串 Left Left(string,length) 从string字符串的左边得length长度的字符串 Right Right(string,length) 从string字符串的右边得length长度的字符串 LCase LCase(string) 将string字符串里的所有大写字母转化为小写字母 UCase UCase(string) 将string字符串里的所有大写字母转化为大写字母 StrComp StrComp(string1,string2[,compare]) 返回string1字符串string2字符串的比较结果,如果两个字符串相同,则返回0,如果小于则返回-1,如果大于则返回1 InStr InStr(string1,string2[,compare]) 返回string1字符串string2字符串第一次出现的位置 Split Split(string1,delimiter[,count[,start]]) 将字符串根据delimiter拆分成一维数组,其delimiter用于标识子字符串界限。如果省略,使用空格("")作为分隔符。count返回的子字符串数目,-1指示返回所有子字符串。start为1执行文本比较;如果为0或者省略执行二进制比较。 Replace Replace(expression,find,replacewith[,compare[,count[,start]]]) 返回字符串,其指定数目的某子字符串(find)被替换为另一个子字符串(replacewith)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值