myString= "First?Second Third";
String[] result = Regex.Split(myString, @"()\?");
應導致: 首先, 二,三 Regex.Split on「()」and「?」
我缺少什麼? (我還需要括號來分割別的東西)
myString= "First?Second Third";
String[] result = Regex.Split(myString, @"()\?");
應導致: 首先, 二,三 Regex.Split on「()」and「?」
我缺少什麼? (我還需要括號來分割別的東西)
我想用()
,你的意思是空白。你不需要任何捕獲組。只要使用變更或字符類:
String[] result = Regex.Split(myString, @"\s|\?");
// OR
String[] result = Regex.Split(myString, @"[\s?]");
謝謝!我不知道如何使用「|」分裂。我將它更改爲@「\?|()」,因此它將空間保留爲單獨的條目。 – Daniel
@Milos。不客氣:) –
你需要圍繞內部[]
那些字符,以創建一系列他們。 [\s\?]
這將各執:
?
您可以使用\s
處理 「任何」 空白字符。
使用字符串方法:
myString= "First?Second Third";
String[] result = myString.Split(' ','?');
謝謝。我沒有提及我需要空間字符作爲數組中的單獨條目,所以我最終使用了正則表達式。它現在有效。 – Daniel
我不是很確定你正在嘗試用引號做。請記住,在C#中,括號用於表示正則表達式中的邏輯組,它們不會轉義空格。相反,你想分割一組明確的字符,用括號[]表示。您應該使用以下模式進行分割:
String[] result = Regex.Split(myString, @"[\?\s]");
請注意\?是一個逃脫的空間(就像你原來的那樣)。空白字符將以\ s形式轉義。因此,我的解決方案實質上是說將任何明確指示的字符(基於[])上的字符串分開,並將這些字符列爲? (轉義爲\?)和「」(轉義爲\ s)。
編輯經過信息來源OP:
: 我也看到了,在回答這個職位,你editted上評論說你想要的白空間的邏輯分組,在這種情況下,我會去後String[] result = Regex.Split(myString, @"[\?(\s)]");
很好的答案,+1。 – Brian
你告訴我們你期望的是什麼,但不是你得到的。 – Spaceghost
爲什麼要使用正則表達式? 'String [] result = myString.Split('','?');' –