2008-11-28 11 views
6

Necesito un RegExp que coincida con una palabra o varias palabras entre comillas.RegExp coincide con una palabra o varias palabras en presupuestos

[\ w] * coincide con una palabra

"[\ w \ W & & [^"]] *" coincide con varias palabras entre comillas.

(por cierto, no sé por qué \ w \ obras W, pero no un simple. (que debe coincidir con todos los caracteres)

Entonces, ¿cómo combinar estas dos expresiones regulares?

Respuesta

4

¿se "[^"]+" hacer lo que quiere? (partido de un partido de comillas dobles, uno o más caracteres que no son comillas dobles, entonces m atch un segundo)

3

yo preferiría comilla doble:.

"\s*((?:\w(?!\s+")+|\s(?!\s*"))+\w)\s*" 

en lugar de "[^"]+" porque ^" coincide con todo, no es sólo \w (alfanumérico) Char [a-zA-Z_0-9]

De esa manera, hacer coincidir solo \w caracteres entre comillas, sin espacios finales.

" ee eee e ee " 

le da en el grupo (1):

ee eee e ee 

El aspecto negativo de la ventaja (?!\s+") están aquí para asegurarse de que no incluyo los últimos espacios antes del comillas dobles;

6

en primer lugar gracias.

sus respuestas fueron de gran ayuda, pero noté que mi pregunta tal vez no era lo suficientemente clara.

De todos modos, a partir de sus respuestas que terminó con esta expresión regular:

"[^"] + "| [\ w] +

que coincide con palabras y las palabras múltiples entre comillas.

por ejemplo: ¿qué es "esto" dará 3 partidos: primer partido: lo segundo partido: es tercer partido: "esta cosa"

que es exactamente lo que necesitaba. Gracias de nuevo.

+0

+1 Mucho más simple;) No recibí al principio lo que quería, pero dejo mi respuesta como referencia – VonC

Cuestiones relacionadas