我有一個小問題,我不知道如何調用它,所以我會盡我所能解釋你。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