我想從C#中的字符串替換特定的子字符串。替換特定的字符串C#?
我的字符串是:This is a car.
,我試圖從這個串碼 'A' 用的String.Empty替換:
data = data.Replace("a", string.Empty);
但我的輸出是:
This is c r.
我只是想刪除孤立的'a'的發生,而不是當這個字/字用於其他一些字(如汽車)。
我要像一部份輸出:This is car.
我怎樣才能做到這在C#?
我想從C#中的字符串替換特定的子字符串。替換特定的字符串C#?
我的字符串是:This is a car.
,我試圖從這個串碼 'A' 用的String.Empty替換:
data = data.Replace("a", string.Empty);
但我的輸出是:
This is c r.
我只是想刪除孤立的'a'的發生,而不是當這個字/字用於其他一些字(如汽車)。
我要像一部份輸出:This is car.
我怎樣才能做到這在C#?
您需要一個正則表達式模式,它只能匹配單詞邊界上的「a」。 "\b"
在正則表達式表示字邊界:
Regex.Replace("this is a car", @"\ba\b", "")
如果你想匹配大寫字母「A」,以及,確保你的模式是不區分大小寫(RegexOptions.IgnoreCase
)或明確將「A」添加到圖案像"\b[Aa]\b"
。
這會在給定的測試用例中留下兩個相鄰的空格。 –
@WizardofOgz它的行爲與編寫的代碼類似。當然,該行與輸出不匹配,所以我不確定期望的行爲究竟是什麼。 –
謝謝!有效。 – Arry
改爲搜索字符串「a」,並用空格替換以保持句子結構正確;
data = data.Replace(" a ", " ");
也搜索空間。
data = data.(" a ", " ")
有人不同意這個答案顯然 –
是的,看到四個人在幾秒鐘內拍攝相同的單行內容很有趣,但所有人在同一時間投下的票更加搞笑 – Christoffer
請參閱@Zdravko Danev,瞭解您的解決方案未涵蓋的情況。 – mbeckish
您可以使用正則表達式並限制爲符合條件的單詞「a」的實例。
string input = "This is a car. A thing to watch out for.";
string output = Regex.Replace(input, "\ba\b", "");
//Results in "This is car. A thing to watch out for."
您還可以添加一個字符類來處理大寫和小寫以及任何其他字符。恩。 \ S [AA] \ S
的\ s表示任何空白字符
你能用一個例子來解釋一下嗎? – Arry
你是什麼意思與 '隔離occurence'?它是也許這樣的事情你真的後:
data.Replace(" a ", " ");
你需要做幾個不同的情況,但可以肯定的是可能的:
一個在句首「A車流逝 「 - > s.StartsWith( 」A 「)
一箇中間 」這是一輛「 - >替換(」 A「,」「)
您忘記了字符串以'a'結尾的情況,這是必需的,因爲要替換的字符串有一個尾部空格:-) – Christoffer
這是可以接受的解決方案,但似乎並不是一個很好的方法。有沒有更好的方法來實現這一目標? 感謝您的回答! – Arry
@Arry--你不喜歡Mehrdad Afshari的解決方案嗎? – mbeckish
哇,許多熱門的觸發器人:-) – Christoffer