javascript - Dela vid enstaka skiljeteckenförekomst
Jag har strängar som
A_B_C_D
A_B___C_D
där ___ kunde vara var som helst i strängen.
Vad är det enklaste sättet att dela dem vid varje enskild _ men inte vid ___?
Svar #1
>>> "A_B_C_D".match(/(?:[^_]|_{2,})+/g)
["A", "B", "C", "D"]
>>> "A_B___C_D".match(/(?:[^_]|_{2,})+/g)
["A", "B___C", "D"]
Istället för att hitta separatorerna, hittar vi själva komponenterna. Observera att strängarna måste vara antingen icke-_s (eftersom separatorn är _), eller fler än ett _. Så regexen för att matcha dem är helt enkelt så här.
Observera att detta regex ignorerar de tomma strängarna om indata börjar eller slutar med _ (t.ex. "_a_" kommer bara att returnera ["a"].)
