在线急等:用正则表达式查找多行字符串中的一段字符?
在线急等:用正则表达式查找多行字符串中的一段字符?
我想在多行字符串中查找一段字符,这段字符是以“begin”开始,以“end”结束的,但我每次都只能查找一行的匹配,但不能返回多行的匹配!
StreamReader rd=new StreamReader(response.GetResponseStrea (),Encoding.Default);
string str=rd.ReadToEnd();
Regex reg=new Regex("begin(.*|\n)end");
if(reg.IsMatch(str)) //str为要查找的字符串
{string str2=reg.Match(str).Value;}
设为:RegexOptions.Multiline也不行!请各位同胞帮忙指点一下!
问题点数:0、回复次数:4Top
1 楼shixueli(我们总是不能随心所欲)回复于 2003-08-01 20:43:07 得分 0
应该是:
Regex reg=new Regex("begin(.|\n)*end",RegexOptions.Multiline|RegexOptions.IgnoreCase);Top
2 楼saucer(思归)回复于 2003-08-01 21:10:44 得分 0
use RegexOptions.SinglelineTop
3 楼chenhigh(小陈)回复于 2003-08-01 21:59:53 得分 0
楼上是对的Top
4 楼chenhigh(小陈)回复于 2003-08-01 22:22:22 得分 0
1.RegexOptions.Singleline或RegexOptions.Multiline都可以的
2.正则表达式应该象shixueli(渴望成功)那样写:"begin(.|\n)*end"
3.当搜索字符串有嵌套的时候,你的代码返回的结果是最大搜索结果,例如搜索:
Get a begin111
wibegin222reless
camp222endaign for Age111end of Mythology
时,返回的结果为:
begin111
wibegin222reless
camp222endaign for Age111endTop




