2012-10-02 13 views

Respuesta

21

Esto debería funcionar

\+?\d+ 

coincide con una opcional + al principio de la línea y los dígitos después de que

EDIT:

Como de la solicitud de aclaración de OP: 3423kk55 se corresponde porque entonces es la primera parte (3423). Para que coincida con una cadena entera utilice sólo esta vez:

^\+?\d+$ 
1

Una expresión regular Perl para ello podría ser: \+?\d+

7

Se verá algo como esto:

\+?\d+ 

El \+ significa una signo más literal, el ? significa que el grupo anterior (el signo más) puede aparecer 0 o 1 veces, \d indica un carácter de dígito, y el + final requiere que el grupo anterior (el dígito) aparece una o más veces.

EDIT: Al utilizar expresiones regulares, tener en cuenta que hay una diferencia entre encontrar y partidos (en Java por lo menos, aunque la mayoría de las implementaciones de expresiones regulares tienen métodos similares). find encontrará la subcadena en algún lugar de la cadena propietaria, y coincide con intentará hacer coincidir toda la cadena con el patrón, fallando si hay caracteres adicionales antes o después. Asegúrese de que está utilizando el método correcto, y recuerde que usted puede añadir un ^ para forzar al principio de la línea y una $ para forzar el final de la línea (lo que todo lo ve como ^\+?\d+$.

4

simple ^\+?\d+$

Línea de inicio, luego 1 o 0 signos más, seguido de al menos 1 dígito, luego el final de lnie

Cuestiones relacionadas