小问题帮忙 获取指定字符之间的内容

oo00gg99 2010-02-03 03:59:58
string aa="abcdefghijklmn0123456789";
假如我想获取指定字符串bc 与45之间的内容包含bc和45
实际返回 bcdefghijklmn012345
不知道如何写方法
...全文
85 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
mbh0210 2010-02-03
  • 打赏
  • 举报
回复

(?s)(?<=bc).*?(?=45)
zhuxiaojun2002 2010-02-03
  • 打赏
  • 举报
回复
string aa="abcdefghijklmn0123456789";

for (m = r.Match(aa); m.Success; m = m.NextMatch())
zhuxiaojun2002 2010-02-03
  • 打赏
  • 举报
回复
Match m = null;
Regex r = new Regex("bc(.*?)45", RegexOptions.IgnoreCase | RegexOptions.Compiled);
List<string> tmpList = new List<string>
for (m = r.Match(content); m.Success; m = m.NextMatch())
{
tmpList.Add(m.Groups[0].Value);
}
gghlkk 2010-02-03
  • 打赏
  • 举报
回复

string str = "abcdefghij456 bcdefij456";
foreach (Match reg in Regex.Matches(str, @"bc\w+?45"))
{
Console.WriteLine(reg.Value);
}
缭绕飘渺 2010-02-03
  • 打赏
  • 举报
回复
好啊
楼上不错
学习了
wjf8882300 2010-02-03
  • 打赏
  • 举报
回复
第一种方法,使用正则表达式,很可惜我不是正则高手,不能给你提供了。
第二种方法,求字符串字串的方法。这个方法简单,但是有点繁琐。你可以这样做
思路:
int start = aa.IndexOf("bc");
int end=aa.IndexOf("45");
string newstring=aa.Substring(start+2,end-start-2);

start=aa.IndexOf("bc",end);//寻找第二个
end=aa.IndexOf("45",end);//寻找第二个
...
这里你可以写个while循环找出所有的如
IList<string> list=new List<string>();
while(end!=-1)
{
start=aa.IndexOf("bc",end);//寻找第二个
end=aa.IndexOf("45",end);//寻找第二个
list.Add(aa.Substring(start+2,end-start-2));
}
大体就是这样了。
oo00gg99 2010-02-03
  • 打赏
  • 举报
回复
如果可能包含有多个string aa="abcdefghij456 bcdefij456";
则多个都需要返回bcdefghij45 和 bcdefij45

111,120

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧