Documentación de Flash CS3 |
|||
| Programación con ActionScript 3.0 > Utilización de expresiones regulares > Sintaxis de las expresiones regulares > Cuantificadores | |||
Los cuantificadores se utilizan para especificar repeticiones de caracteres o secuencias en patrones, de la manera siguiente:
|
Metacarácter de cuantificador |
Descripción |
|---|---|
|
|
Detecta el elemento anterior repetido cero o más veces. |
|
|
Detecta el elemento anterior repetido una o más veces. |
|
|
Detecta el elemento anterior repetido cero veces o una sola vez. |
|
y
|
Especifica un cuantificador numérico o un rango de cuantificadores para el elemento anterior:
|
Se puede aplicar un cuantificador a un solo carácter, a una clase de caracteres o a un grupo:
/a+/ detecta el carácter a repetido una o más veces./\d+/ detecta uno o más dígitos./[abc]+/ detecta una repetición de uno o más caracteres, cada uno de las cuales puede sera, b o c./(very, )*/ detecta la palabra very seguida de una coma y un espacio repetido cero o más veces.Se pueden utilizar cuantificadores dentro de grupos delimitados por paréntesis que tengan cuantificadores aplicados. Por ejemplo, el siguiente cuantificador detecta cadenas como word y word-word-word:
/\w+(-\w+)*/
De manera predeterminada, las expresiones regulares realizan lo que se conoce como una detección de la coincidencia más larga posible (greedy matching). Cualquier subpatrón de la expresión regular (como .*) intentará detectar la mayor cantidad posible de caracteres en la cadena antes de pasar a la siguiente parte de la expresión regular. Por ejemplo, considérense la expresión regular y la cadena siguientes:
var pattern:RegExp = /<p>.*<\/p>/;
str:String = "<p>Paragraph 1</p> <p>Paragraph 2</p>";
La expresión regular detecta toda la cadena:
<p>Paragraph 1</p> <p>Paragraph 2</p>
Sin embargo, si sólo se desea detectar una agrupación <p>...</p>, se puede hacer lo siguiente:
<p>Paragraph 1</p>
Añadir un signo de interrogación (?) a continuación de cualquier cuantificador para convertirlo en un cuantificador perezoso (lazy), que detecta la coincidencia más corta posible. Por ejemplo, la siguiente expresión regular, que utiliza un cuantificador de este tipo, *?, detecta <p> seguido del mínimo número posible de caracteres, seguidos de </p>:
/<p>.*?<\/p>/
Hay que tener en cuenta los siguientes aspectos sobre los cuantificadores:
{0} y {0,0} no excluyen un elemento de una coincidencia./abc+*/.s (dotall), aunque esté seguido de un cuantificador *. Por ejemplo, considérese el fragmento de código siguiente:
var str:String = "<p>Test\n";
str += "Multiline</p>";
var re:RegExp = /<p>.*<\/p>/;
trace(str.match(re)); // null
re = /<p>.*<\/p>/s;
trace(str.match(re));
// salida: <p>Test
// Multilínea</p>
Para más información, consulte El indicador s (dotall).
Flash CS3
Enviarme un mensaje de correo electrónico cuando se añadan comentarios a esta página | Informe de comentarios
Página actual: http://livedocs.adobe.com/flash/9.0_es/main/00000116.html