在C中每次在特殊字符之前切割一个字符串

问题描述:

我有所有字符串都有不同的长度。 例如在C中每次在特殊字符之前切割一个字符串

str1 = "This is new job ----First Message----- This is reopened "; 
str2 = "Start Process ----First Message----- Is this process closed? <br/> no ----First Message-----"; 

现在这些字符串应该总是有"----First Message-----"在里面。 我需要的是修剪或拆分字符串,使得我只能得到第一次出现"----First Message-----"的部分。

所以在str1结果的情况下应该是“这是新的工作” 对于str2应该"Start Process "

如何在C#做什么?

+0

的可能的复制[获取子字符串 - 某些字符之前的一切(http://*.com/questions/1857513/get-substring-everything-before-certain-char) – 2017-01-14 12:35:49

string stringStart = str1.Substring(0, str1.IndexOf("----First Message-----")); 
+0

这将返回你想要的字符串所以如果你想稍后使用它,请确保将它捕获到变量中,等等。它不会修改str1的内容。 http://msdn.microsoft.com/en-us/library/aka44szs.aspx – 2012-02-22 22:36:30

+0

@JoshP感谢指出,我已经编辑了答案,将其考虑在内。 – phoog 2012-02-22 22:38:01

+0

完美答案。非常感谢。 – user970225 2012-02-22 23:14:12

String result = input.Substring(0, input.IndexOf('---FirstMessage-----')); 

实际上,用于教学目的...

private String GetTextUpToFirstMessage(String input){ 
    const string token = "---FirstMessage-----"; 
    return input.Substring(0, input.IndexOf(token)); 
} 

这听起来像是正则表达式工作!!!!

请尝试以下代码。不要忘记在顶部包含using System.Text.RegularExpressions;声明。

Regex regex = new Regex(@"^(.*)----FirstMessage----$"); 
    string myString = regex.Match(str1).Value; 
+0

你可以检查这个问题http://*.com/questions/19131758/how-to-split-a-string-into-an-array-of-strings – Anjali 2013-10-02 15:00:50

+0

现在你有两个问题.... $在最终将确保您不会与问题中的数据匹配。 – 2017-09-05 21:34:02