我有一个小问题,我不知道如何调用它,所以我会尽我所能解释你。C#被正则表达式分割
String text = "Random text over here boyz, I dunno what to do";
我想分裂只拿over here boyz
例如,我想让分裂字text
和单词,
,它会告诉我的全部文本,在thoose 2串。有任何想法吗?
谢谢, Sagi。
我有一个小问题,我不知道如何调用它,所以我会尽我所能解释你。C#被正则表达式分割
String text = "Random text over here boyz, I dunno what to do";
我想分裂只拿over here boyz
例如,我想让分裂字text
和单词,
,它会告诉我的全部文本,在thoose 2串。有任何想法吗?
谢谢, Sagi。
从你的意见,我得到从这个字符串:
foo bar id="baz" qux
你想获得价值baz
,因为它是在id="{text}"
模式。
对于您可以使用正则表达式:
string result = Regex.Match(text, "id=\"(.*?)\"").Groups[1].Value;
注意,这将匹配任何字符。另外请注意,这会产生误报,如fooid="bar"
,并且这将不匹配未加引号的值。
因此,总而言之,为了解析HTML,你不应该使用正则表达式。试试HtmlAgilityPack和一个XPath表达式。
在第一种情况下这几乎是正确的答案,有一个问题: 我的字符串是这样的: FOO栏ID =“巴兹” asdfsadfsdaf =“” 因此,输出类似 巴兹“asdasdasd = – Sagi
是啊,这很好就像我说的。 ,在你的问题中包含所有可读形式的例子 – CodeCaster
是的,我是sry,但正如我在我原来的代码中所说的那样,这不是我的原因,有什么我可以做的吗 – Sagi
没有可以接收多个字符串分隔符拆分过载:
var rrr = text.Split(new string[] { ",", "text" }, StringSplitOptions.None);
如果你想只提取使用正则表达式这两个字符串之间的文本,你可以做这样的事情:
您可以使用正则表达式类: 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);
}
你可以训练写正则表达式用这个工具http://www.regexbuddy.com/或http://www.regexr.com/
有一个'String.Split'方法https://msdn.microsoft.com/en-us/library/system.string.split(v=vs.110).aspx? – Pogrindis
所以,基本上,你想要“在这里boyz”通过分割字符串返回? – Sam
想要分割字符串时需要自问的第一个问题是:“我在寻找什么文本以及如何识别它?”。例如,如果这是通过“句子中的第三到第五个词,包括附加的标点符号”来描述的,则可以开始编写正则表达式。 – CodeCaster