有如下地址类型的字符串:
田家庵区淮河新城二期17,2,404
兰溪市金圆上都18幢
荔县管池镇
要截取出第一个区域的字符串,以上3个截取的值分别为: 田家庵区 兰溪市 荔县
对应代码,初始写为
var value = Regex.Match(lc[2], ".+[市区县镇路道街]{1,1}");
后来发现其默认是贪婪模式,如"荔县管池镇",会把后面的镇也截取进去,于是修改为
var value = Regex.Match(lc[2], ".+?[市区县镇路道街]{1,1}");
在公司电脑上仍然会多截取(后在家电脑上测试,又能正确通过)
var value = Regex.Match(lc[2], ".+?[市区县镇路道街]{1,1}?");
添加2个阻止贪婪模式后,肯定不会再多截取了。
时间: 2024-10-19 01:54:02