我想删除一个点(.
),如果出现在该行的开头,例如:
hi,
<new line> .
<new line> How are you.
如何删除此行?
答案 0 :(得分:3)
删除一行开头的点:
resultString = Regex.Replace(subjectString, @"^\.", "", RegexOptions.Multiline);
如果以点开头,则删除整行:
resultString = Regex.Replace(subjectString, @"^\..*\r\n", "", RegexOptions.Multiline);
如果只包含一个点,则删除整行:
resultString = Regex.Replace(subjectString, @"^\.\r\n", "", RegexOptions.Multiline);
如果它以点开头并且可能包含尾随空格,则删除整行:
resultString = Regex.Replace(subjectString, @"^\.[^\r\n\S]*\r\n", "", RegexOptions.Multiline);
答案 1 :(得分:0)
string result = "hi,\n.\nHow are you.".Replace("\n.\n", "\n");
答案 2 :(得分:0)
你可以使用内置的string-comparisons - 有很多可用的。
您可以使用RegEx。
但这一切都归结为一点 - &gt;你试过什么?和please read the docs。
简短的答案:
// allLines is your List/Array/Enumerable of all lines that need checking
foreach(string line in allLines){
if(!line.Trim().StartsWith("."){
// Do whatever you like with the found string.
line = line.Remove(".",1);
}
}
答案 3 :(得分:0)
“检测”在您的情况下意味着什么?如果只是在出现点时返回true / false,则可以只搜索"\n."
- 换行后跟一个点。你甚至不需要正则表达式:
bool weHaveDot = myString[0] == "." || (myString.IndexOf("\n.") > -1);
答案 4 :(得分:0)
怎么样:
MyLine.Substring(MyLine.IndexOf("<new line> ") + 11).StartsWith(".")
答案 5 :(得分:0)
我担心答案取决于问题的含义。
我的猜测是你有几行,你想删除那些只包含一个点的行。正确?
然后解决方案是:
你不需要正则表达式。 (除非你想获得一些正则表达式的经验;在那种情况下,抱歉。)