2013-07-18 11 views
8

Potrzebuję podzielić ciąg rozdzielony wieloma odstępami. Na przykład:Podziel ciąg znaków oddzielony wieloma przestrzeniami, ignorując pojedyncze spacje

"AAAA AAA  BBBB BBB BBB  CCCCCCCC" 

Chcę podzielić ją na nich:

"AAAA AAA" 
"BBBB BBB BBB" 
"CCCCCCCC" 

Próbowałem z tym kodem:

value2 = System.Text.RegularExpressions.Regex.Split(stringvalue, @"\s+"); 

, ale nie sukcesu, chcę tylko podzielić ciąg przez wiele spacji, a nie pojedyncza spacja.

+0

Ile przestrzeni między przedmiotami może być? –

+1

czy trzeba to zrobić z RegEx? – MethodMan

+0

Są one oddzielone więcej niż jedną spacją. Nie ma znaczenia jak wiele ... Chodzi o to, aby zignorować pojedynczą przestrzeń. –

Odpowiedz

24

+ oznacza „jeden lub więcej”, więc pojedyncza spacja by zakwalifikować jako separator. Jeśli chcesz wymagać więcej niż jeden raz, użyj {m,n}:

value2 = System.Text.RegularExpressions.Regex.Split(stringvalue, @"\s{2,}"); 

Wyrażenie {m,n} wymaga wyrażenia bezpośrednio przed pasować m do n razy włącznie. Wymagany jest tylko jeden limit. Jeśli brakuje górnego limitu, oznacza to "m lub więcej powtórzeń".

+0

To jest dokładnie to, czego szukam. Wielkie dzięki! –

2
value2 = System.Text.RegularExpressions.Regex.Split(stringvalue, @"\s{2,}"); 
2
value2 = System.Text.RegularExpressions.Regex.Split(stringvalue, @"\s\s+"); 
Powiązane problemy