2012-02-21 15 views
7

Tengo cadenas como esta 'some-dasd\dasd-dasdas\dasdas-dasd-das\dsad'. Necesito dividir la cadena en matriz por dos símbolos diferentes '\' y '-', por lo que me gustaría obtener la matriz ['some', 'dasd', 'dasd', 'dasdas', 'dasdas', 'dasd', 'das' ,'dsad'].Cadena dividida por dos delimitadores diferentes

¿Cuál es la mejor manera de hacerlo?

Respuesta

14
"ome-dasd\dasd-dasdas\dasdas-dasd-das\dsad".split(/\\|-/) 

deberían hacer el truco.

+0

@Russell gracias. Pero no es el mejor;) – lucapette

+1

Pero esto no funciona para el caso donde los delimitadores están uno al lado del otro \ - le da algunos elementos en blanco. –

11

Se puede dividir cadena usando expresiones regulares:

mystring.split(/[-\\]/) 
+0

Un poco mejor que el mío ... – lucapette

+0

@lucapette Vas a tener que disculpar mi relativa ignorancia de la expresión regular, tanto esta respuesta como la tuya me parecen equivalentes. ¿Por qué uno sería mejor que el otro? – Russell

+3

@Russel Son absolutamente equivalentes en términos de * coincidencia * pero este es más conciso y es más fácil de mantener. Por ejemplo, supongamos que desea agregar el '%'. Este se convertirá en '[- \\%]', el mío se convertiría en '\\ | - |%'. Y probablemente también es cuestión de gustos :) – lucapette

Cuestiones relacionadas