C# 拆分字符串直到遇到特定文本
C# Split string until encounter certain text
我正在尝试拆分一个字符串,直到找到某个字符。
示例:
string test = "Hello(30)";
我希望结果是:"Hello"
另一个例子:
string test = "Test(50)";
结果:"Test"
我该怎么做?谢谢
您想使用 IndexOf
函数,它 returns 字符在字符串中的第一个位置:
string s = test.Substring(0,test.IndexOf("("));
Nick 发布了一个带有子字符串的直截了当的答案,但如果您想要一些可以字符串匹配更复杂内容的东西,那么 Regex
就是您的最佳选择。如果您不熟悉它,我建议您在自己的时间研究一下如何使用它,但这是您的代码的实现。
您需要通过在文件顶部键入 using System.Text.RegularExpressions;
来声明您想要包含正则表达式。
string test = "Hello(30)";
string match = Regex.Match(test, @"[^(]*").ToString();
//[^(]* == Exclude all after point in search.
//match == "Hello"
正则表达式可能读起来很乱,但是如果您需要了解更多信息,可以找到很多文档。只需在线搜索它,您就会找到您要找的东西。
参考this stack overflow comment我使用的实现。
string test = "Test(50)";
string outcome = !test.Contains("(") ? test : test.Substring(0, test.IndexOf("("));
我正在尝试拆分一个字符串,直到找到某个字符。 示例:
string test = "Hello(30)";
我希望结果是:"Hello" 另一个例子:
string test = "Test(50)";
结果:"Test"
我该怎么做?谢谢
您想使用 IndexOf
函数,它 returns 字符在字符串中的第一个位置:
string s = test.Substring(0,test.IndexOf("("));
Nick 发布了一个带有子字符串的直截了当的答案,但如果您想要一些可以字符串匹配更复杂内容的东西,那么 Regex
就是您的最佳选择。如果您不熟悉它,我建议您在自己的时间研究一下如何使用它,但这是您的代码的实现。
您需要通过在文件顶部键入 using System.Text.RegularExpressions;
来声明您想要包含正则表达式。
string test = "Hello(30)";
string match = Regex.Match(test, @"[^(]*").ToString();
//[^(]* == Exclude all after point in search.
//match == "Hello"
正则表达式可能读起来很乱,但是如果您需要了解更多信息,可以找到很多文档。只需在线搜索它,您就会找到您要找的东西。
参考this stack overflow comment我使用的实现。
string test = "Test(50)";
string outcome = !test.Contains("(") ? test : test.Substring(0, test.IndexOf("("));