Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在2米之间插入文本_C#_Regex_Delimiter - Fatal编程技术网

C# 在2米之间插入文本

C# 在2米之间插入文本,c#,regex,delimiter,C#,Regex,Delimiter,我有一根像这样的线 Say\u Hi~~~~ Say\u Opt1~~ Say\u Opt3~~~ Say\u Opt6~~ Say\u Opt9~~说再见 var s1 = "there~is~a~~cat"; var s2 = "super"; var words = s1.Split('~').ToList(); //words.Insert(3, s2); // this will insert new token words[3] = s2; // this will replace

我有一根像这样的线

Say\u Hi~~~~ Say\u Opt1~~ Say\u Opt3~~~ Say\u Opt6~~ Say\u Opt9~~说再见

var s1 = "there~is~a~~cat";
var s2 = "super";
var words = s1.Split('~').ToList();
//words.Insert(3, s2); // this will insert new token
words[3] = s2; // this will replace word at specific index
var res = string.Join("~", words.ToArray());
它有16个“~”将其划分为17个“部分”。在第5节中,我需要插入
Say_Opt5

Say\u Hi~~~ Say\u Opt1~~ Say\u Opt3~~ Say\u Opt5~ Say\u Opt6~~~ Say\u Opt9~~说再见

var s1 = "there~is~a~~cat";
var s2 = "super";
var words = s1.Split('~').ToList();
//words.Insert(3, s2); // this will insert new token
words[3] = s2; // this will replace word at specific index
var res = string.Join("~", words.ToArray());
所以我需要能够获取一个字符串和一个位置,并将字符串插入指定的位置。我尝试使用正则表达式,但我不完全确定匹配如何工作

 string baseString = "Say_Hi~~~Say_Opt1~~Say_Opt3~~~Say_Opt6~~~Say_Opt9~~Say_GoodBye";

var newString = new Regex("~").Replace(baseString, "Say_Opt5", 7);
另外,可能已经有了选项5,因此我需要用新选项5替换旧选项5。比如更换

Say\u Hi~~~ Say\u Opt1~~ Say\u Opt3~~ Say\u Opt5~ Say\u Opt6~~~ Say\u Opt9~~说再见

var s1 = "there~is~a~~cat";
var s2 = "super";
var words = s1.Split('~').ToList();
//words.Insert(3, s2); // this will insert new token
words[3] = s2; // this will replace word at specific index
var res = string.Join("~", words.ToArray());

Say_Hi~~~ Say_Opt1~~ Say_Opt3~~ Say_Opt5_Custom~ Say_Opt6~~~ Say_Opt9~~说再见

var s1 = "there~is~a~~cat";
var s2 = "super";
var words = s1.Split('~').ToList();
//words.Insert(3, s2); // this will insert new token
words[3] = s2; // this will replace word at specific index
var res = string.Join("~", words.ToArray());
在此之后,您的猫将成为超级英雄,它将成为超级猫:)

如果您使用C#,您可以使用以下命令:

string s = "Say_Hi~~~Say_Opt1~~Say_Opt3~~~Say_Opt6~~~Say_Opt9~~Say_GoodBye";
MessageBox.Show(s);
string[] parts = s.Split('~');
parts[YourIntegerIndex] = "YouNewString";
s = string.Join("~", parts);
MessageBox.Show(s);

展示你所尝试过的——世界将尝试修复它!为什么位置7(基于0)是第5节?如果有选项5,这就是opt5的位置。至于为什么,答案总是遗留的。对不起,我忘了最后一部分,这个能处理吗?。谢谢。很长一天。无需调用
.ToArray()
String.Join
接受
IEnumerable
作为第二个参数,
List
在那里就可以了。对不起,我忘了最后一部分,这个可以处理吗?