使用正则表达式搜索字符串

prqin 2007-02-04 11:09:02
使用正则表达式搜索字符串从指定位置开始到指定位置间的特定字符串

例如搜索"aceeawerrt32awerrww46"中在第2个字符间到第12个字符间的"werr"字符串

用正则表达式该如何写

...全文
275 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
cancerser 2007-02-05
  • 打赏
  • 举报
回复
string str="aceeawerrt32werrww46";
int iStart=1;
int iConut=12;
int iEnt=str.Length- iStart-iConut;
Regex reg;
if(iEnt>=0)
reg=new Regex("^.{"+iStart+"}.*werr.*.{"+iEnt+"}$");//如果不加判断 只使用此正则长度 大于13,会false
else
{
reg=new Regex("^.{"+iStart+"}.*werr.*");//这样是要匹配
}
bool b=reg.IsMatch(str);
cancerser 2007-02-05
  • 打赏
  • 举报
回复
挺有意思, 要是长度不够13个 还匹配不?
-过客- 2007-02-05
  • 打赏
  • 举报
回复
这个-_-#,这样
string yourStr = "aceeawerrt32awerrww46";
int startIndex = 2;
int endIndex = 12;
string resultStr = yourStr.Substring(startIndex-1,endIndex-startIndex+1);
if(Regex.IsMatch(resultStr,@"werr"))
{
//包含
}
else
{
//不包含
}
prqin 2007-02-05
  • 打赏
  • 举报
回复
我当然知道没必要用正则,但是我想知道如果用正则该怎么写?
-过客- 2007-02-05
  • 打赏
  • 举报
回复
不是很明白楼主的意思,你是想查询指定子字符串里是否有特定的字符串吗,那没必要用正则的

string yourStr = "aceeawerrt32awerrww46";
int startIndex = 2;
int endIndex = 12;
int strIndex = yourStr.Substring(startIndex-1,endIndex-startIndex+1).IndexOf("werr");
if(strIndex>-1)
{
//包含
}
else
{
//不包含
}

这里只是为了结构清晰和具有灵活性这样写的

110,571

社区成员

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

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

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