草庐IT

regexp_substr

全部标签

c# - string.substring 与 string.take

如果只想取字符串的一部分,多用substring方法。这有一个缺点,您必须首先测试字符串的长度以避免错误。比如你想把数据保存到数据库中,想把一个值截掉到前20个字符。如果您执行temp.substring(0,20)但temp仅包含10个字符,则会引发异常。我看到了2种解决方案:测试长度,如果需要的话做子串使用扩展方法Takestringtemp="1234567890";vardata=newstring(temp.Take(20).ToArray());-->datanowholds"1234657890"当使用Take方法时,在速度或内存使用方面有什么缺点吗?好处是您不必编写所有

c# - string.substring 与 string.take

如果只想取字符串的一部分,多用substring方法。这有一个缺点,您必须首先测试字符串的长度以避免错误。比如你想把数据保存到数据库中,想把一个值截掉到前20个字符。如果您执行temp.substring(0,20)但temp仅包含10个字符,则会引发异常。我看到了2种解决方案:测试长度,如果需要的话做子串使用扩展方法Takestringtemp="1234567890";vardata=newstring(temp.Take(20).ToArray());-->datanowholds"1234657890"当使用Take方法时,在速度或内存使用方面有什么缺点吗?好处是您不必编写所有

c# - C# 中 Substring 的意外行为

这个问题在这里已经有了答案:SurprisingSubstringbehavior(4个答案)关闭7年前。.netSystem.String类中Substring()方法的定义是这样的publicstringSubstring(intstartIndex)根据方法定义,startIndex是“此实例中子字符串的从零开始的起始字符位置”。如果我理解正确,这意味着它会给我一部分字符串,从给定的从零开始的索引开始。现在,如果我有一个字符串"ABC"并采用具有不同索引的子字符串,我会得到以下结果。varstr="ABC";varchars=str.ToArray();//returns3cha

c# - C# 中 Substring 的意外行为

这个问题在这里已经有了答案:SurprisingSubstringbehavior(4个答案)关闭7年前。.netSystem.String类中Substring()方法的定义是这样的publicstringSubstring(intstartIndex)根据方法定义,startIndex是“此实例中子字符串的从零开始的起始字符位置”。如果我理解正确,这意味着它会给我一部分字符串,从给定的从零开始的索引开始。现在,如果我有一个字符串"ABC"并采用具有不同索引的子字符串,我会得到以下结果。varstr="ABC";varchars=str.ToArray();//returns3cha

c# - 如何在 C# 中使用 Substring() 获取字符串的最后五个字符?

我可以用下面的函数得到前三个字符。但是,如何使用Substring()函数获取最后五个字符(“三”)的输出?还是必须使用另一个字符串函数?staticvoidMain(){stringinput="OneTwoThree";//Getfirstthreecharactersstringsub=input.Substring(0,3);Console.WriteLine("Substring:{0}",sub);//OutputOne.} 最佳答案 如果您输入的字符串可能少于五个字符,那么您应该知道string.Substring如果

c# - 如何在 C# 中使用 Substring() 获取字符串的最后五个字符?

我可以用下面的函数得到前三个字符。但是,如何使用Substring()函数获取最后五个字符(“三”)的输出?还是必须使用另一个字符串函数?staticvoidMain(){stringinput="OneTwoThree";//Getfirstthreecharactersstringsub=input.Substring(0,3);Console.WriteLine("Substring:{0}",sub);//OutputOne.} 最佳答案 如果您输入的字符串可能少于五个字符,那么您应该知道string.Substring如果

c# - 如果字符串在 .NET 中是不可变的,那么为什么 Substring 需要 O(n) 时间?

鉴于字符串在.NET中是不可变的,我想知道为什么将它们设计成string.Substring()需要O(substring.Length)时间,而不是O(1)?即如果有的话,权衡是什么? 最佳答案 更新:我非常喜欢这个问题,我刚刚把它写在了博客上。参见Strings,immutabilityandpersistence简短的回答是:O(n)是O(1)如果n不变大。大多数人从微小的字符串中提取微小的子字符串,所以复杂度如何渐近增长是完全不相关。长答案是:构建的不可变数据结构使得对实例的操作允许重新使用原始内存,只需少量(通常为O(1)

c# - 如果字符串在 .NET 中是不可变的,那么为什么 Substring 需要 O(n) 时间?

鉴于字符串在.NET中是不可变的,我想知道为什么将它们设计成string.Substring()需要O(substring.Length)时间,而不是O(1)?即如果有的话,权衡是什么? 最佳答案 更新:我非常喜欢这个问题,我刚刚把它写在了博客上。参见Strings,immutabilityandpersistence简短的回答是:O(n)是O(1)如果n不变大。大多数人从微小的字符串中提取微小的子字符串,所以复杂度如何渐近增长是完全不相关。长答案是:构建的不可变数据结构使得对实例的操作允许重新使用原始内存,只需少量(通常为O(1)

一篇文章带你了解JavaScript RegExp 对象

RegExp:是正则表达式(regularexpression)的简写。一、什么是RegExp?正则表达式描述了字符的模式对象。当项目检索某个文本时,可以使用一种模式来描述要检索的内容。RegExp就是这种模式。简单的模式可以是一个单独的字符。更复杂的模式包括了更多的字符,并可用于解析、格式检查、替换等等。可以规定字符串中的检索位置,以及要检索的字符类型,等等。二、语法varpatt=newRegExp(pattern,modifiers);或更简单的方法varpatt=/pattern/modifiers;注:当使用构造函数创造正则对象时,需要常规的字符转义规则(在前面加反斜杠\)。比如,以

javascript - 将 RegExp 转换为 String 然后再转换回 RegExp

所以我有一个RegExpregex=/asd/我将它作为key存储在我的键值对存储系统中。所以我说str=String(regex)返回"/asd/"。现在我需要将该字符串转换回RegExp。所以我尝试:RegExp(str)并且我看到了/\/asd\//这不是我想要的。它与/asd/不同在将字符串转换为正则表达式之前,我是否应该只删除字符串中的第一个和最后一个字符?在这种情况下,这会得到我想要的结果,但如果R​​egExp具有/i或/g之类的修饰符,则不一定有效有更好的方法吗? 最佳答案 如果不需要存储修饰符,可以使用Regexp