有如下地址類型的字符串:
田家庵區淮河新城二期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個阻止貪婪模式后,肯定不會再多截取了。