C#由正则表达式拆分

时间:2015-10-17 12:54:41

标签: c# regex

我有一个小问题,我不知道怎么称呼它,所以我会尽力向你解释。

String text = "Random text over here boyz, I dunno what to do";

我想仅以分割over here boyz为例,我希望将单词text和单词,分开,它会显示整个文字2字符串。有任何想法吗?

谢谢你, 鹭。

4 个答案:

答案 0 :(得分:1)

根据你的评论我从这个字符串中得到:

foo bar id="baz" qux

您希望获取值baz,因为它是id="{text}"模式。

为此你可以使用正则表达式:

string result = Regex.Match(text, "id=\"(.*?)\"").Groups[1].Value;

请注意,这将匹配任何字符。另请注意,这会产生误报,例如fooid="bar",并且这不会与未加引号的值匹配。

总而言之,对于解析HTML,您不应该使用正则表达式。试试HtmlAgilityPack和XPath表达式。

答案 1 :(得分:0)

有一个Split重载可以接收多个字符串分隔符:

var rrr = text.Split(new string[] { ",", "text" }, StringSplitOptions.None);

如果您想使用正则表达式仅提取这两个字符串之间的文本,您可以执行以下操作:

var pattern = @"text(.*),";
var a = new Regex(pattern).Match(text);
var result = a.Groups[1];

答案 2 :(得分:0)

您可以使用Regex类: https://msdn.microsoft.com/pl-pl/library/ze12yx1d%28v=vs.110%29.aspx

但首先(正如所说)你需要自己澄清你将如何识别你想要的字符串。

答案 3 :(得分:0)

在第一种情况下,您可以使用

string stringResult;
if (text.Contains("over here boyz"))
    stringResult = string.Empty;
else
    stringResult = "over here boyz";

但第二种情况可以通过此代码解决

String text = "Random text over here boyz, I dunno what to do";           
//Second dream without whitespace
var result = Regex.Split(text, " *text *| *, *");
foreach (var x in result)
{
    Console.WriteLine(x);
}

//Second dream with whitespace
result = Regex.Split(text, "text|,");
foreach (var x in result)
{
    Console.WriteLine(x);
}

您可以使用此工具http://www.regexbuddy.com/http://www.regexr.com/

训练编写正则表达式