string str = "金海湾豪庭13,15,16,17,19座"; var strArray = str.Substring(0, str.Length - 1).Split(new char[]{','},StringSplitOptions.RemoveEmptyEntries); string result = strArray[0] + "座|"; for (int i = 1; i < strArray.Length; i++) { result += "金海湾豪庭" + strArray[i] + "座|"; } result = result.TrimEnd('|');
const string str = "金海湾豪庭13,15,16,17,19座"; var strArray = str.Substring(0, str.Length - 1).Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); var laststr = str.Substring(str.Length - 1)+'|';//座| var result = strArray[0] + laststr; var arrysplit = strArray[0].Substring(0, strArray[0].Length - 2);//金海湾豪庭 for (int i = 1; i < strArray.Length; i++) { result += arrysplit + strArray[i] + laststr; } result = result.TrimEnd('|');
我修改了一下,金海湾豪庭 直接用Substring()取出来。 但却只适合找这种字符串,当字符串是:
string str="B23号区十一号、十三号综合楼";
string str="商业A号、二号楼";
string str="H7号小区源潭太阳商业广场十、十二、十三号楼";
还是不能很好的拆分出来。能不能用正则取出来?
@sidecore:
正则肯定可以的,刚刚写了一下出来了
(?<name>[^,]+) 以逗号为分隔C#中的用法你肯定知道了,我就不写了
@Zery: (?<name>[^,]+)这个正则取到的是 逗号 前面的字符串,比如str = "金海湾豪庭13,15,16,17,19座" 中的“金海湾豪庭13”、str="B23号区十一号,十三号综合楼" 中的“B23号区十一号”。
但我是想取出13前面的“金海湾豪庭”、十一号前面的 “B23号区”。
@sidecore: 这个正则是没法实现的。","号前的字符没法确定
楼上这句多余.
string str="金海湾豪庭13、15、16、17、19座"; string strs = str.Substring(0, 5); string[] nums = str.Substring(0,str.Length-1).Split(new char[]{'、'},StringSplitOptions.RemoveEmptyEntries); for (int i = 1; i < nums.Length; i++) { Console.Write(strs + nums[i] + "座|"); } Console.ReadKey();