我有一个字符串变量,下面是它的内容:正则表达式查找和替换文本
.....
DataElement deAbtVersionNum
m_AttrParent commercialcardsys :: CommercialCardInt
m_AttrGUIFieldLabel“WEX_CI 3.02.01P20.1" appsys30 :: lngDbb
m_AttrdbType “字符”
.....
正如...所示,也可能有其他文字。
在我们有“WEX_CI 3.02.01P20.1”第三行(这是从底部并在WEX ..存在开始的地方。)
我需要更换3.02.01P20.1(完全)用新版本说3.02.01P20.1.NEW
我已经能够做到这一点,使用一种肮脏的方法,寻找“Wex的索引,然后找到下一个”和等等等等。
int start = CItext.LastIndexOf("\"WEX") + 1;
int end = CItext.IndexOf("\"", start);
string text = CItext.Substring(start, end - start + 1);
string[] parts = text.Split(new Char[] { ' ' });
string editedText = parts[0] + " " + LabelName;
CItext = CItext.Replace(text, editedText);
CIText是我必须编辑的字符串。 LabelName是我想要的字符串,而不是3.02.01P20.1
任何人都可以推荐我任何其他干净的方法吗?
什么让你觉得现有的逻辑是肮脏和正则表达式干净吗? – jfs 2012-08-13 06:45:53
因为它太多了。我欢迎其他方法,不一定正则表达式 – 2012-08-13 06:48:02
与[String.Replace](http://msdn.microsoft.com/en-us/library/fk49wtc1.aspx)你不需要正则表达式。这会起作用吗? – Default 2012-08-13 06:48:04