我想從指定的字符串開頭刪除Word Test
和Leaf
字符串的一部分而已,不是從另一個側面,所以串Test_AA_234_6874_Test
應該AA_234_6874_Test
,但是當我使用.Replace
將來自世界各地的替換詞Test
我不want.How做 這是代碼我已經做到了如何刪除
string st = "Test_AA_234_6874_Test";
st = st.Replace("Test_","");
我想從指定的字符串開頭刪除Word Test
和Leaf
字符串的一部分而已,不是從另一個側面,所以串Test_AA_234_6874_Test
應該AA_234_6874_Test
,但是當我使用.Replace
將來自世界各地的替換詞Test
我不want.How做 這是代碼我已經做到了如何刪除
string st = "Test_AA_234_6874_Test";
st = st.Replace("Test_","");
你可以使用正則表達式來做到這一點。正則表達式的第三個參數replace method具體說明您要替換多少次。
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個字母,你也可以使用Substring
這是更好的性能。
string st = "Test_AA_234_6874_Test";
var value = st.Substring(5, st.Length - 5);
考慮檢查字符串是以「開始」開始還是以「修剪」結尾並決定您想要維護的結束位置和開始位置。然後使用Substring方法只獲取你需要的部分。
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();
}
}
}
^
將匹配字符串開頭的文本。
在_my_中,單詞「簡單」和「正則表達式」(更不用說「表演」)從來沒有匹配過。 –
@UweKeim,也許你還有很多東西要學。 –
使用正則表達式。
var str1 = "Test_AA_234_6874_Test";
var str2 = "Leaf_AA_234_6874_Test";
str1 = Regex.Replace(str1, "^Test", "");
str2 = Regex.Replace(str2, "^Leaf", "");
Regex.Replace參數是你輸入的字符串(STR1),你想匹配的模式,以及如何與取代它,在這種情況下一個空格。 ^字符表示查看字符串的開頭,因此類似「MyTest_AAAA_234_6874_Test」的字樣將返回「MyTest_AA_234_6874_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.Skip(5))'僅供參考,表現不佳。子串是要走的路。 – Karolis