C# 如何删除字符串的一部分
我只想删除指定字符串开头的单词Test和Leaf,而不是从另一端,因此字符串Test_AA_234_6874_Test应该是AA_234_6874_Test,但当我使用时。替换它将从我不想要的任何地方替换单词Test。如何操作 这是我所做的代码C# 如何删除字符串的一部分,c#,asp.net,.net,C#,Asp.net,.net,我只想删除指定字符串开头的单词Test和Leaf,而不是从另一端,因此字符串Test_AA_234_6874_Test应该是AA_234_6874_Test,但当我使用时。替换它将从我不想要的任何地方替换单词Test。如何操作 这是我所做的代码 string st = "Test_AA_234_6874_Test"; st = st.Replace("Test_",""); 您可以使用正则表达式来执行此操作。正则表达式的第三个参数指定要替换多少次 string st = "Test_AA_23
string st = "Test_AA_234_6874_Test";
st = st.Replace("Test_","");
您可以使用正则表达式来执行此操作。正则表达式的第三个参数指定要替换多少次
string st = "Test_AA_234_6874_Test";
var regex = new Regex("(Test|Leaf)_");
var value = regex.Replace(st, "", 1);
或者,如果要替换的字符串仅出现在起始位置,则只需使用“^”,它将断言字符串起始位置
string st = "Test_AA_234_6874_Test";
var regex = new Regex("^(Test|Leaf)_");
var value = regex.Replace(st, "");
如果你知道你总是要删除前5个字母,你也可以使用更有效的方法
string st = "Test_AA_234_6874_Test";
var value = st.Substring(5, st.Length - 5);
考虑检查字符串是否以开始和/或以修剪结束,并确定要保持的结束和开始位置。然后使用子字符串方法仅获取所需的部分
public string Normalize(string input, string prefix, string suffix)
{
// Validation
int length = input.Length;
int startIndex = 0;
if(input.StartsWith(prefix))
{
startIndex = prefix.Length;
length -= prefix.Length;
}
if (input.EndsWith (suffix))
{
length -= suffix.Length;
}
return input.Substring(startIndex, length);
}
希望这有帮助。最简单的方法是使用这样的正则表达式
using System;
using System.Text.RegularExpressions;
using System.Text;
namespace RegExTest
{
class Program
{
static void Main(string[] args)
{
var input = "Test_AA_234_6874_Test";
var matchText = "Test";
var replacement = String.Empty;
var regex = new Regex("^" + matchText);
var output = regex.Replace(input, replacement);
Console.WriteLine("Converted String: {0}", output);
Console.ReadKey();
}
}
}
^将匹配字符串开头的文本。使用正则表达式
string st = "Test_AA_234_6874_Test";
var regex = new Regex("^(Test|Leaf)_");
var value = regex.Replace(st, "");
var str1 = "Test_AA_234_6874_Test";
var str2 = "Leaf_AA_234_6874_Test";
str1 = Regex.Replace(str1, "^Test", "");
str2 = Regex.Replace(str2, "^Leaf", "");
Replace参数是您的输入字符串str1、要匹配的模式以及要替换的内容,在本例中是一个空格。^字符的意思是看字符串的开头,因此类似MyTest\u AAAA\u 234\u 6874\u Test的内容仍然会返回MyTest\u AA\u 234\u 6874\u Test。我将在这里使用一些非常简单的代码
string wordToRemoveFromBeginning = "Test_";
int index = st.IndexOf(wordToRemoveFromBeginning);
string cleanPath = (index < 0) ? st : st.Remove(index,
wordToRemoveFromBeginning.Length);
string str = "Test_AA_234_6874_Test";
string substring = str.Substring(0, 4);
if (substring == "Test" || substring == "Leaf")
{
str= str.Remove(0, 5);
}
String.Join,st.Skip5供参考,性能不佳。在我看来,simple和regex(更不用说性能)这两个词从未匹配过。