asp.net 关于字符串内范围截取的一点方法总结

前两天有一位网友提出了一个字符串内截取字符串的问题,除了用普通的字符串截取的方式外,我推荐的是用LINQ方式来截取。两者实际上差别不是很大,都是采用字符串截取方式,但后者从写法和观察效果会比前者简单实用得多。

废话不多说,直接进入正题: 
问题是:是这样的字符串,"dfsdg<2434>,dgdfg<35346>,dtr35<3w543>",提取"<"和">"里面的内容? 
对于这样问题首先我们思路应该就是先把她们分组出来,然后再去判断这对尖括号的位置,找到后,截取出来就 可以了。于是我分别用之前提出来的两种方式 来实现,如下: 
 1、原始字符串截取方式,示例代码如下:

string str="dfsdg<2434>,dgdfg<35346>,dtr35<3w543>"; 
  string[] strGroup=str.Split(‘,‘); 
  foreach(var s in strGroup) 
  { 
  int left=s.IndexOf(‘<‘); 
   int right=s.LastIndexOf(‘>‘); 
   s.Substring(left+1,right-left-1); 
   Console.WriteLine(s); 
  }

运行结果如下: 
2434 
  35346 
  3w543 
2、应用语言集成查询(LINQ),示例代码如下:

string str="dfsdg<2434>,dgdfg<35346>,dtr35<3w543>"; 
  var result=from s in str.Split(‘,‘) 
     let left=s.IndexOf(‘<‘) 
     let right=s.LastIndexOf(‘>‘) 
     select s.Substring(left+1,right-left-1); 
  result.Dump();

运行结果如下:

第二种调试的工具是采用LINQPad来调试的。对于第二种里面的let关键字,帮助文档的解释如下:

let 关键字可以创建一个新的范围变量,并且用您提供的表达式的结果初始化该变量。一旦用值初始化了该范围变量,它就不能用于存储其他值。但如果该范围变量存储的是可查询的类型,则可以对其进行查询。

时间: 2024-10-03 21:16:49

asp.net 关于字符串内范围截取的一点方法总结的相关文章

Python字符串拼接、截取及替换方法总结

字符串拼接: 用字符串的join方法: a = ['a','b','c','d'] content = '' content = ''.join(a) print content content的结果:'abcd' 用字符串的替换占位符替换: a = ['a','b','c','d'] content = '' content = '%s%s%s%s' % tuple(a)  print content content的结果是:'abcd' 字符串截取: python的字串列表有2种取值顺序 1

去除字符串内的一些额外字符方法

在处理String对象时,有时候需要去除一些额外的字符,如:空格等 主要的方法: string.Trim() 常用 无参默认去除字符串两端的空格,多个空格也能一次性去掉:但是注意只是两段,内部无法控制!! string.Trim(char [])    当有多个特定字符需要去除的时候,用这种方法 string.TrimStart( char c) 不常用  针对字符串首端去除指定标记 string.TrimStart( char []) 针对字符串首端去除指定标记组 string.TrimEnd

thinkphp内置截取字符串函数无法显示省略号解决方法

thinkphp内置截取字符串函数无法显示省略号解决方法 functions.php function msubstr($str, $start=0, $length, $charset="utf-8", $suffix=true){ if(function_exists("mb_substr")) {      if($suffix)    {         if($str==mb_substr($str, $start, $length, $charset))

ASP如何计算中英文混合字符串长度和截取字符串

用ASP做网站的时候经常会碰到要截取字符串的情况.ASP中的Len函数不管是中文字符,还是英文字符,统统按一个单位来计算,由于一个中文字符的宽度是一个英文字符宽度的两倍,在中英文混合的情况下字符串实际占用的宽度就不好计算了,如果按照Len函数计算的长度来截取字符串截出来的效果也会长短不一,下面是按照一个汉字相当于两个英文字符来计算字符串长度和截取字符串的代码 计算中英文混合字符串的长度: [vb] view plaincopyprint? function getStringLen(str) o

1字符串中的world替换为i bookan wisdom2.字符串的相加字符串输出,长度3比较字符串大小4截取字符串5字符串内所有a都替换成A6判断字符串是否以http开头7将字符串内admin和123截取出来8字符添加

#import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autoreleasepool { /* 第1题 字符串中的world替换为i bookan wisdom */ //        NSString *[email protected]"hello world and sunshine"; //        NSString *newstr3=[str1 string

秒懂ASP.NET中的内置对象

上篇博客,小编主要简单的介绍了一下ASP.NET中的控件,这篇博客,小编主要简单总结一下ASP.NET中的内置对象,七个内置对象分别是:Request.Response.Application.Cookies.Session.Server.Trace.这些对象使得用户更容易收集通过浏览器请求发送的信息.相应浏览器以及存储用户信息,以实现其他特定的状态管理和页面信息的传递,首先,我们来看下面一张图: 接下来,小编主要从概述,基本语法,常用属性和方法以及一些小例子入手,详细介绍七个内置对象.  Re

[C#]清除字符串内空格

关键代码: /// <summary> /// 清除字符串内空格 /// </summary> /// <param name="str">需要处理的字符串</param> /// <returns>处理好后的字符串</returns> public static string ExceptBlanks(this string str) { int _length = str.Length; if (_length

正表达式匹配一个字符串内重复出现的所有子字符串

匹配重复出现的子串 方法: string引用对象.match(); RegExp 对象.exec(); match()定义和用法 match() 方法可在字符串内检索指定的值,或找到一个或多个正则表达式的匹配. 该方法类似 indexOf() 和 lastIndexOf(),但是它返回指定的值,而不是字符串的位置. 1 function testForRegularFormation(){ 2 var test_str = "atsgatttathtat"; 3 var reg =/(

JS中比較2个字符串内元素的不同(字符1, 字符2, 分隔符可选)

比較2个字符串内元素的不同(字符1, 字符2, 分隔符可选) 文件: diff.js // 演示样例使用方法 /* var str1 = "tie, mao, 55"; var str2 = "tie, mao, csdn"; var result = diff(str1, str2, ','); // 对象 var rs = "" + result; // " 55, csdn" var df1 = result.diff1