.
如果出现在行首,我想删除一个点( ),例如:
hi,
<new line> .
<new line> How are you.
我怎样才能删除这条线?
删除行首的一个点:
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);
string result = "hi,\n.\nHow are you.".Replace("\n.\n", "\n");
您可以使用内置的字符串比较- 有很多可用的。
您可以使用RegEx。
但这一切都归结为一点->您尝试过什么?请阅读文档。
简短的可能答案:
// 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);
}
}
在您的情况下,“检测”是什么意思?如果只是在出现点时返回真/假,您可以只搜索"\n."
- 换行符后跟一个点。你甚至不需要正则表达式:
bool weHaveDot = myString[0] == "." || (myString.IndexOf("\n.") > -1);
关于什么:
MyLine.Substring(MyLine.IndexOf("<new line> ") + 11).StartsWith(".")
恐怕答案取决于问题的含义。
我的猜测是你有几行,你想删除那些只包含一个点的行。正确的?
那么解决方案是:
而且您不需要正则表达式。(除非您想获得一些正则表达式的经验;在这种情况下,对不起。)