日期:2014-05-20  浏览次数:20388 次

正则表达式的问题
string   registerWords   =   "s注册*姓名*男*中专以上学历*经验*专业*30岁以下*湖南省娄底市 ";

如何使用正则表达式匹配出:
(1)XX省XX市,如:湖南省娄底市
(2)直辖市及某区:类似XX市XX区,如:上海市黄浦区,重庆市渝中区

------解决方案--------------------
观楼主性欲值
非不能答 实不愿答也
------解决方案--------------------
"^\w+$ "
------解决方案--------------------
原来事出有因

1:
[\u4E00-\u9FA5]{2,4}省[\u4E00-\u9FA5]{2,4}市

2:
[\u4E00-\u9FA5]{2,4}市[\u4E00-\u9FA5]{2,4}区

2,4表示匹配的最小和最大字串 如 乌鲁木齐=4 北京=2
------解决方案--------------------
string yourStr = ..........;
MatchCollection mc = Regex.Matches(yourStr,@ "([\u4e00-\u9fa5]*?)市(.*?)区 ",RegexOptions.IgnoreCase);
foreach(Match m in mc)
{
m.Groups[1].Value; //市
m.Groups[2].Value; //区
}

不过这要求××市前面不能为中文,否则类似于“在上海市黄浦区”,取出的市为“在上海”,而非“上海”,取省市也一样,把里面的市区改成省市即可