我有以下字符串:分割字符串由邏輯值與正則表達式
string text = "Hello && my || Name & is | Tom"
現在我想分割字符串成不同的部分,而在字與字之間的邏輯運算符。我已經嘗試了下面的內容,但是隻有一個字符串和整個文本。
String[] result= Regex.Split(text, @"\&&\||\&\|");
怎麼了?
預期輸出與5個字符串數組:
- 你好
- 我
- 名稱
- 是
- 湯姆
我有以下字符串:分割字符串由邏輯值與正則表達式
string text = "Hello && my || Name & is | Tom"
現在我想分割字符串成不同的部分,而在字與字之間的邏輯運算符。我已經嘗試了下面的內容,但是隻有一個字符串和整個文本。
String[] result= Regex.Split(text, @"\&&\||\&\|");
怎麼了?
預期輸出與5個字符串數組:
沒有正則表達式的解決方案,只是拆分:
String[] result = text.Split(new Char[] { '|', '&' }, StringSplitOptions.RemoveEmptyEntries);
它也會在'&&'而不是僅僅分離'&' – 2015-02-10 09:34:27
@Amit Joki:它會在*&分割*兩次*然後*刪除*空的部分。 – 2015-02-10 09:35:38
好的..我明白了。這就是爲什麼刪除條目選項在那裏我想。 – 2015-02-10 09:37:02
更改您的代碼,
String[] result= Regex.Split(text, @"\s*[|&]+\s*");
這會根據一個或多個|
或&
符號分割輸入。 \s*
匹配零個或多個空格,並且[|&]+
匹配一個或多個|
或&
符號。
謝謝你的作品。最後一個問題。如果我也想根據'''分割文本,我該怎麼做? – Maddy 2015-02-10 09:38:50
只需在字符類中加'''。 '@「\ s * [|&」「] + \ s *」' – 2015-02-10 09:39:18
爲什麼不使用's.Split(新[] { '|', '&'},StringSplitOptions.RemoveEmptyEntries)'? – 2015-02-10 09:34:20
我認爲正則表達式更高效? – Maddy 2015-02-10 09:45:00
@Maddy它不是。 – 2015-02-10 09:51:36