C# 替换C中的部分字符串#
我有许多字符串,它们有多个空格和一个正斜杠,如下所示:C# 替换C中的部分字符串#,c#,substring,C#,Substring,我有许多字符串,它们有多个空格和一个正斜杠,如下所示: string a="xxxxxx xxx xxxxxxxx xxxxxx aaa/xxxxxxxxxxxxxxx"; 或 或 我需要做的是用我想要的新字符串替换子字符串“aaa”或“bbbbb”或“12345”(请注意,这些子字符串只是示例,它们可以是任何内容)。 子字符串“aaa”或“bbbbb”或“12345”或任何内容的特性是,子字符串正好位于唯一一个正斜杠之前,并且正好位于该斜杠前面和最近的空格之后 如何定位此子字符串,以便用所需
string a="xxxxxx xxx xxxxxxxx xxxxxx aaa/xxxxxxxxxxxxxxx";
或
或
我需要做的是用我想要的新字符串替换子字符串“aaa”或“bbbbb”或“12345”(请注意,这些子字符串只是示例,它们可以是任何内容)。子字符串“aaa”或“bbbbb”或“12345”或任何内容的特性是,子字符串正好位于唯一一个正斜杠之前,并且正好位于该斜杠前面和最近的空格之后 如何定位此子字符串,以便用所需的新子字符串替换它?谢谢。使用字符串。替换(“,”);
你应该考虑使用< /P> 表达式可以是这样的
“([^/]+)\\s(\\w+)/(.+)”
Regex.Replace(您的字符串“([^/]+)\\s(\\w+/(.+)”,“$1 replacement/$3”)
好吧,好吧
以你的通用方法为例:
公共字符串替换(字符串输入,字符串替换)
{
string[]words=input.Split(“”);
字符串结果=string.Empty;
for(int i=0;i
作为对>>的回应,我需要一种通用的方法来替换斜杠和最靠近斜杠的空格之间的任何内容,尽管选择了建议的答案。我仍然决定回答我自己的问题
string substr=""//any string I want
string a=OldString.split('/');//split by '/'
string b=a[0].Substring(0,a[0].LastIndexOf(' '));//get the substring before the last space
string NewString= b+ substr + a[1];//the substring between the space and the '/' is now replaced by substr
你试过在互联网上搜索如何做到这一点吗?如果你知道空格在哪里,并且知道斜杠在哪里,除非字符串发生变化,否则两者之间的数字必须固定。如果你想学习一项简便的新技能(有些人会说在组合中添加另一个问题),请看。他们可以做到这一切,还有更多。否则,您可以编写自己的自定义字符串解析器,这将更快。取决于您想要什么:您将在余生中使用的多功能工具或此特定问题的解决方案:)请使用string.replace(char oldchar,char newchar)你可以按原样在谷歌上输入你问题的标题,我相信前20个结果会给出答案。这不是一个理想的解决方案,因为op说可以有很多答案b@Agent_Orange他的回答是正确的。他显示的是“aaa”,与“a”不同。更具体地说,他应该说“aaa/”,但问题仍然存在。嗨,这不是我的意思。我需要一个通用的方法来替换斜杠和与其最近的空格之间的任何内容。对不起,我要替换的子字符串的特征是它位于空格和斜杠之间。(只有一条斜线。空格是斜线前面和最靠近斜线的空格)。嗨,也许我以前没有正确表达自己。现在我已经编辑了我的问题。@SamAnybody谁知道如何让双反斜杠出现,请随意编辑。在手机上编辑不太好用。
string c="xx xx 12345/x xx"
string a="xxxxxx xxx xxxxxxxx xxxxxx aaa/xxxxxxxxxxxxxxx";
string b="xxxx xxx xxxxxx bbbbb/xxxxxxx xxx";
string resultA = a.Replace("aaa", "Your replacement");
string resultB = b.Replace("bbbbb", "Your replacement");
public string Replacement(string input, string replacement)
{
string[] words = input.Split(' ');
string result = string.Empty;
for (int i = 0; i < words.Length; i++)
{
if(words[i].Contains('/'))
{
int barIndex = Reverse(words[i]).LastIndexOf('/') + 1;
int removeLenght = words[i].Substring(barIndex).Length;
words[i] = Reverse(words[i]);
words[i] = words[i].Remove(barIndex, removeLenght);
words[i] = words[i].Insert(barIndex, Reverse(replacement));
string ToReverse = words[i];
words[i] = Reverse(ToReverse);
break;
}
}
for(int i = 0; i < words.Length; i++)
{
result += words[i] + " ";
}
result = result.Remove(result.Length - 1);
return result;
}
public string Reverse(string s)
{
char[] charArray = s.ToCharArray();
Array.Reverse(charArray);
return new string(charArray);
}
string substr=""//any string I want
string a=OldString.split('/');//split by '/'
string b=a[0].Substring(0,a[0].LastIndexOf(' '));//get the substring before the last space
string NewString= b+ substr + a[1];//the substring between the space and the '/' is now replaced by substr