问题描述
Dimstr="1232beginadkjfkadjfdkajendkdsafjkaj"DimstrBegin="begin"DimstrEnd="end"返回的结果“adkjfkadjfdkaj”
解决方案
解决方案二:
Dim_begin=str.IndexOf(strBegin)+strBegin.LengthDim_end=str.LastIndexOf(strEnd)Dim_result=str.Substring(_begin,_end-_begin))
解决方案三:
先查找第一个字符串的位置+字符串本身长度,然后再查第二个字符串的位置,就可以取到他们中间的字符串了
解决方案四:
'获取两个字符串中间的字符串PrivateSharedFunctionSearchMidString(ByValsAsString,ByVals1AsString,ByVals2AsString)AsString'获取搜索到的数目Dimn1AsInteger,n2AsIntegern1=s.IndexOf(s1,0)+s1.Length'开始位置n2=s.IndexOf(s2,n1)'结束位置Returns.Substring(n1,n2-n1)'取搜索的条数,用结束的位置-开始的位置,并返回EndFunction
调用方法:SearchMidString(str,strBegin,strEnd)不谢。
解决方案五:
用一段或者两段字符串作为分隔来截取内容,你可以直接使用Split函数。例如:Dimstr="1232beginadkjfkadjfdkajendkdsafjkaj"DimstrBeginAsString()={"begin"}DimstrEndAsString()={"end"}Dimresult=str.Split(strBegin,StringSplitOptions.None)(1).Split(strEnd,StringSplitOptions.None)(0)
解决方案六:
另外,例如你并不需要区分分隔符出现的次序,那么其实可以简化一下(提高一下性能)Dimstr="1232beginadkjfkadjfdkajendkdsafjkaj"DimkeyAsString()={"begin","end"}Dimresult=str.Split(key,StringSplitOptions.None)(1)
总之只要记住,从字符串中匹配和分割内容,可以使用Split,就行了。
解决方案七:
Dimstr="1232beginadkjfkadjfdkajendkdsafjkaj"Dimx=Regex.Match(str,"(?<=begin).*(?<end)").Groups(1).Value