c#按正则表达式拆分

本文关键字:拆分 正则表达式 | 更新日期: 2023-09-27 18:18:04

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

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

我想只拆分over here boyz,例如,我想拆分单词text和单词,,它将显示这两个字符串中的整个文本。什么好主意吗?

谢谢你,Sagi .

c#按正则表达式拆分

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

foo bar id="baz" qux

您需要获取值baz,因为它在id="{text}"模式中。

可以使用正则表达式:

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

注意这将匹配任何字符。还要注意,这将产生假阳性,如fooid="bar",并且这将不匹配未加引号的值。

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

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];

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

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

第一个大小写可以用

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);
}

您可以使用此工具训练编写Regex http://www.regexbuddy.com/或http://www.regexr.com/