2012-08-23 14 views
16

Tengo una cadena. El final es diferente, como index.php?test=1&list=UL o index.php?list=UL&more=1. Lo único que estoy buscando es &list=.En expresiones regulares, haga coincidir el final de la cadena o un carácter específico

¿Cómo puedo unirlo, ya sea en el medio de la cuerda o en el extremo? Hasta ahora tengo [&|\?]list=.*?([&|$]), pero la pieza ([&|$]) en realidad no funciona; Intento usar eso para que coincida con & o el final de la cadena, pero el final de la parte de la cadena no funciona, por lo que este patrón coincide con el segundo ejemplo pero no con el primero.

Respuesta

34

Uso:

/(&|\?)list=.*?(&|$)/ 

Tenga en cuenta que cuando se utiliza una expresión entre corchetes, todos los personajes dentro de ella (con excepciones some) va a ser interpretado literalmente. En otras palabras, [&|$] coincide con los caracteres &, | y $.

+0

Gracias; la parte "interpretada literalmente" de la que no tenía conocimiento para corchetes. ¡Muy útil! Entonces, para usar '|' para separar dos o más caracteres, ¿se requiere '()'? – Gary

+1

Sí, de hecho, necesita agrupar ('()') las alternativas. –

+0

[No funciona para mí.] (Https://jsfiddle.net/jmqffocL/) –

Cuestiones relacionadas