我有一个字符串变量,以下是它的内容:
.....
DataElement deAbtVersionNum
m_AttrParent commercialcardsys :: CommercialCardInt
m_AttrGUIFieldLabel“WEX_CI 3.02.01P20.1”appsys30 :: lngDbb
m_AttrdbType“char”
.....
如......所示,也可能有其他文字。
在第三行我们有“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
有人能建议我使用其他干净的方法吗?
答案 0 :(得分:0)
我认为你可以使用正则表达式" lookahead"。试试这个。
var result = Regex.Replace(text, "(?<=WEX_CI )[^\"]+", "NEW", RegexOptions.Multiline);
答案 1 :(得分:0)
试试这个正则表达式
var result = Regex.Replace(text,@"(WEX_CI[\s][\da-zA-Z\.]+)","$1.NEW");