2012-07-23 33 views
-2

我想删除一个点(.)如果出现在一行的开始,因此,例如:如何检测C#中一行的开始点(。)?

hi, 
<new line> . 
<new line> How are you. 

我怎样才能删除此行?

+7

这是三个不同的问题。 “我该如何删除此行”,与“如何检测点”或“我想删除点”不是同一个问题。你想要哪一个答案? – 2012-07-23 08:34:30

回答

3

在一行的开始删除点:

resultString = Regex.Replace(subjectString, @"^\.", "", RegexOptions.Multiline); 

如果删除一整行以点开始:

resultString = Regex.Replace(subjectString, @"^\..*\r\n", "", RegexOptions.Multiline); 

删除整个lin e如果只包含一个点:

resultString = Regex.Replace(subjectString, @"^\.\r\n", "", RegexOptions.Multiline); 

,如果它以一个点开始,并可能删除整条生产线包含尾随空白:

resultString = Regex.Replace(subjectString, @"^\.[^\r\n\S]*\r\n", "", RegexOptions.Multiline); 
+0

感谢您的帮助。有效。 – 2012-07-26 05:05:20

0
string result = "hi,\n.\nHow are you.".Replace("\n.\n", "\n"); 
0

你可以使用内置string-comparisons - 有很多avialable。你可以使用RegEx

但这一切都来了一点 - >你有什么试过?和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); 
    } 
} 
0

什么是 “检测” 是什么意思?如果只是在出现点时返回true/false,则可以搜索"\n." - 换行符后跟一个点。你甚至不需要为它的正则表达式:

bool weHaveDot = myString[0] == "." || (myString.IndexOf("\n.") > -1); 
+0

的确如此。虽然很容易调整。 – 2012-07-23 08:38:51

0

什么:

MyLine.Substring(MyLine.IndexOf("<new line> ") + 11).StartsWith(".") 
0

恐怕答案取决于什么的问题的手段。

我的猜测是你有几行,你想删除那些只包含点的行。对?

然后将溶液将是:

  • 拆分串入一个字符串数组,每个包含一个线
  • 删除所有数组元素于仅包含点
  • 的加入字符串数组重新走到一起。

而你不需要一个正则表达式。 (除非你想在正则表达式中获得一些经验;在这种情况下,对不起。)