2016-03-07 64 views
0

我需要根據設置的字母字符和非字母字符將一個字符串分解成一個數組或字符集列表。將一個字符串分解爲一個數組/列表bij字母和非字母字符

例如:

字符串= - 「Hello12 $ th'ere @ 4!」

所需的結果= [ - 「] [你好] [$ 12] [日] ['] [我試圖通過搜索一個regex.split解決方案來實現這一點,但我找不到適合的表達式,但我找不到適合的表達式我的需求

回答

2

這個簡單的正則表達式的竅門:([a-zA-Z]+|[^a-zA-Z]+)

對它進行測試here

+0

感謝名單了很多!像魅力一樣工作:-) –

+1

你確定嗎?檢查[' - 「Hello12 $ th'ere!^ @ 4」'](https://regex101.com/r/uA3aF3/1)。檢查[*爲什麼這個正則表達式允許脫字符?*](http://stackoverflow.com/questions/29771901/why-is-this-regex-allowing-a-caret/29771926#29771926)並請修復您的模式。 –

+1

它應該是[a-zA-Z] og [a-z]並忽略大小寫。 – Casperah

0

你可以用一個看起來一個字母和一個非字母usung查找ariund表達之間的邊界的模式使用Regex.Split:

var t=Regex.Split(s, @"(?<=[a-zA-Z])(?=[^a-zA-Z])|(?<=[^a-zA-Z])(?=[a-zA-Z])"); 

Demo.

相關問題