C# 字符串查找&;替换方法

C# 字符串查找&;替换方法,c#,string,C#,String,我需要定位字符串值的特定部分,如下面的一个,我需要将“会议ID”更改为特定的数字 这个数字来自多个数字的下拉列表,所以我不能简单地使用查找和替换。因为在用户满意之前,文本可能会变成多个数字中的一个 字符串的“0783”部分永远不会更改,“Meeting ID”后面总是跟一个“,” 因此,我需要转到“0783,插入文本,,”然后在索引更改事件上插入新编号 以下是一个例子:- 业务邀请,开始时间,M问题,518-06-xxx,9999 999 0783,会议ID,xxx 定位此字符串并每次替换测试的

我需要定位字符串值的特定部分,如下面的一个,我需要将“会议ID”更改为特定的数字

这个数字来自多个数字的下拉列表,所以我不能简单地使用查找和替换。因为在用户满意之前,文本可能会变成多个数字中的一个

字符串的“0783”部分永远不会更改,“Meeting ID”后面总是跟一个“,”

因此,我需要转到“0783,插入文本,,”然后在索引更改事件上插入新编号

以下是一个例子:-

业务邀请,开始时间,M问题,518-06-xxx,9999 999 0783,会议ID,xxx

定位此字符串并每次替换测试的最佳方法是什么


我希望这是有意义的,伙计们?

您可以尝试使用
Regex.Replace
方法

    string pattern = @"\d{3},";
    Regex regex = new Regex(pattern);

    var inputStr = "518-06-xxx, 9999 999 0783";
    var replace = "..."
    var outputStr = regex.Replace(inputStr, replace);
您应该将“当前”
会议ID
存储在一个变量中,随用户操作一起更改,然后在需要字符串时使用相同的全局变量


这样,您就不必担心字符串中的内容,也不必弄乱数组索引。您还可以避免使用魔法数字/字符串,这些数字/字符串在将来的某个时候一定会在您的脸上爆炸。

好的,有几种方法可以做到这一点,但是这似乎是您可以控制的字符串,所以我要说的是您想要做的事情

var myString = string.Format("Business Invitation, start time, M Problem, 518-06-xxx, 9999 999 0783, {0}, xxx ??", yourMeetingId);
如果你无法控制它,那么你就必须更聪明一点:

var startingIndex = myString.IndexOf("0783, ");
var endingIndex = myString.IndexOf(",", startingIndex + 6);
var pattern = myString.Substring(startingIndex + 6, endingIndex - (startingIndex + 6));
myString = myString.Replace(pattern, yourMeetingId);
使用Regex.splitbytoken“0783”,然后在数组的第二个字符串中返回splitbytoken”,“字符串数组中的第一个元素将是插入新文本的位置。然后使用string.Join以“0783”连接第一个拆分,以“,”连接第二个拆分


这看起来是个好主意,有机会我会试试的!谢谢。没问题@Derek,我很高兴能帮上忙!
        string temp = "Business Invitation, start time, M Problem, 518-06-xxx, 9999 999 0783, Meeting ID, xxx ??";
        string newID = "1234";
        string[] firstSplits = Regex.Split(temp, "0783,");
        string[] secondSplits = Regex.Split(firstSplits[1], ",");
        secondSplits[0] = newID;
        string @join = string.Join(",", secondSplits);
        firstSplits[1] = @join;

        string newString = string.Join("0783,", firstSplits);