我正在使用WinForms NET 2.0。我正在編寫一個小函數來修剪某些選定文本的註釋。它所做的是將所選文本分爲單獨的行,然後:C#刪除字符串中的註釋
- 如果行不包含註釋,則會附加它。
- 如果該行包含一些文本後跟註釋,則會附加修剪的註釋。
- 如果該行以註釋開頭,則不會被追加。這是在if語句中。
- 如果該行爲空白,則不會被追加。這也在if語句中。
這裏是我的代碼:
string[] lines = tb.SelectedText.Split('\n');
StringBuilder sb = new StringBuilder();
for (int i = 0; i < lines.Length; i++)
{
if ((lines[i].Trim() != string.Empty) || !Regex.IsMatch(lines[i], @"^\s*;(.*)$"))
{
if (Regex.IsMatch(lines[i], @"^(.*);(.*)$"))
sb.AppendLine(lines[i].Substring(0, lines[i].IndexOf(';')).Trim());
else
sb.AppendLine(lines[i]);
}
}
tb.SelectedText = sb.ToString();
的問題是,因爲預期它不工作。假設,如果我有以下文字:
test ;test
test2 ;test
我希望它可以修剪的意見和刪除空行,但沒有,空行仍然存在。爲什麼是這樣?我檢查了這行是否爲空,所以StringBuilder不應該追加行,如果它是空白的,但由於某種原因,它不會。
另外,由於某種原因,stringbuilder追加了一行。如何擺脫這一點?
在'tb.SelectedTExt'是'\ n'絕對唯一的換行符?例如,它不是'\ r \ n'? –
它總是\ n。 – david