求正则表达式!急
字符串 String str="abcd,bcd,efg,hijk,lmn,opq,ab,cc," 以逗号为分隔符,提取含有b或c的子串。
提取结果要求如下:
arr[0]=abcd
arr[1]=bcd
arr[2]=ab
arr[3]=cc
另外如果是汉字又要怎么办 str="中国,华人,美国,英国,香港,美元," 以逗号为分隔符,提取含有"国"或"美"的子串。
提取结果要求如下:
arr[0]=中国
arr[1]=美国
arr[2]=英国
arr[3]=美元
求实现以上功能的正则表达式
问题点数:20、回复次数:7Top
1 楼mobydick(敌伯威|我排著队拿著爱的号码牌)回复于 2006-03-09 10:11:49 得分 0
1.string regexStr = @"[a-zA-Z]*[bc][a-zA-Z]*";
2.string regexStr = @"\w*[国|美]\w*";Top
2 楼mobydick(敌伯威|我排著队拿著爱的号码牌)回复于 2006-03-09 10:13:44 得分 10
2.string regexStr = @"\w*[国|美]\w*";
上面这个把中间的"|"去掉。
string regexStr = @"\w*[国美]\w*";Top
3 楼min_jie(止戈)回复于 2006-03-09 14:11:38 得分 4
楼上的应该不正确。。\w怎么可以匹配中文字符?
1是对的。。
2:string regexStr = @"\b\S*[国美]\S*\b";
我自己没测试。。楼主可试试。。。
Top
4 楼what_012()回复于 2006-03-09 14:18:48 得分 6
1.string regexStr = @"[a-zA-Z]*[bc][a-zA-Z]*";
2:string regexStr = @"\b\S*[国美]\S*\b";Top
5 楼qq599730()回复于 2006-03-09 16:10:14 得分 0
试过了,好象这个是正确的string regexStr = @"\w*[国美]\w*"
Top
6 楼qq599730()回复于 2006-03-09 16:18:48 得分 0
string regexStr = @"\w*[文鼎经典]\w*";
string astr = "文鼎中行书繁,经典文空叠黑,华文彩云体繁,长城长宋体,";
Regex regex = new Regex(regexStr);
MatchCollection mc =regex.Matches(fontName);
string str = string.Empty;
foreach( Match m in mc )
{
str += m.Groups [0].Value+"," ;
}
结果:str=文鼎中行书繁,经典文空叠黑,华文彩云体繁,
如果想把“文鼎”“经典”作为一个整体
要求结果:str=文鼎中行书繁,经典文空叠黑, 正则要如何改?
Top
7 楼qq599730()回复于 2006-03-09 16:34:21 得分 0
谢谢各位!已经试出来了。
string regexStr = @"\w*(文鼎)\w*|\w*(经典)\w*";Top




