2012-04-30 14 views
7

mam ciągi jakpodziału na pojedyncze separatora wystąpienia

A_B_C_D 
A_B___C_D 

gdzie ___ może być wszędzie w ciągu.

Jaki jest najprostszy sposób na podzielenie ich na pojedynczy numer _, ale nie na ___?

+2

więc co to wynik wyglądać, gdy zawiera ona ___ ''? – Joseph

+0

Ponieważ klucze są generowane, nie jest to możliwe. –

Odpowiedz

8
>>> "A_B_C_D".match(/(?:[^_]|_{2,})+/g) 
["A", "B", "C", "D"] 

>>> "A_B___C_D".match(/(?:[^_]|_{2,})+/g) 
["A", "B___C", "D"] 

Zamiast znajdować separatory, odnajdujemy te komponenty. Zauważ, że ciągi muszą być nie-_ (ponieważ separator jest _) lub więcej niż jednym _ s. Tak więc dopasowanie do nich jest po prostu takie.

Zauważ, że to wyrażenie regularne ignoruje puste struny jeśli wejście rozpoczyna lub kończy _ (np "_a_" po prostu wrócić ["a"]).

Powiązane problemy