2015-02-10 77 views
3

我有以下字符串:分割字符串由邏輯值與正則表達式

string text = "Hello && my || Name & is | Tom" 

現在我想分割字符串成不同的部分,而在字與字之間的邏輯運算符。我已經嘗試了下面的內容,但是隻有一個字符串和整個文本。

String[] result= Regex.Split(text, @"\&&\||\&\|"); 

怎麼了?

預期輸出與5個字符串數組:

  • 你好
  • 名稱
  • 湯姆
+1

爲什麼不使用's.Split(新[] { '|', '&'},StringSplitOptions.RemoveEmptyEntries)'? – 2015-02-10 09:34:20

+0

我認爲正則表達式更高效? – Maddy 2015-02-10 09:45:00

+1

@Maddy它不是。 – 2015-02-10 09:51:36

回答

5

沒有正則表達式的解決方案,只是拆分:

String[] result = text.Split(new Char[] { '|', '&' }, StringSplitOptions.RemoveEmptyEntries); 
+0

它也會在'&&'而不是僅僅分離'&' – 2015-02-10 09:34:27

+0

@Amit Joki:它會在*&分割*兩次*然後*刪除*空的部分。 – 2015-02-10 09:35:38

+0

好的..我明白了。這就是爲什麼刪除條目選項在那裏我想。 – 2015-02-10 09:37:02

3

更改您的代碼,

String[] result= Regex.Split(text, @"\s*[|&]+\s*"); 

這會根據一個或多個|&符號分割輸入。 \s*匹配零個或多個空格,並且[|&]+匹配一個或多個|&符號。

+0

謝謝你的作品。最後一個問題。如果我也想根據'''分割文本,我該怎麼做? – Maddy 2015-02-10 09:38:50

+0

只需在字符類中加'''。 '@「\ s * [|&」「] + \ s *」' – 2015-02-10 09:39:18

相關問題