telefono solo regulares regular reemplazar que personas para numeros nombres mayores letras expresiones expresion especiales enteros digitos consecutivos caracteres buscar regex emacs

regex - solo - ¿Cómo creo una expresión regular en Emacs para exactamente 3 dígitos?



expresion regular telefono 10 digitos (7)

Al experimentar con expresiones regulares en Emacs, considero que la herramienta de expresiones regulares es bastante útil:

ftp://ftp.newartisans.com/pub/emacs/regex-tool.el

No es una respuesta (la pregunta ya está respondida), solo un consejo general.

Quiero crear una expresión regular en Emacs que coincida exactamente con 3 dígitos. Por ejemplo, quiero hacer coincidir lo siguiente:

123 345 789

Pero no

1234 12 12 23

Si uso [0-9]+ juego cualquier cadena de dígitos. Pensé que [0-9]{3} funcionaría, pero cuando se prueba en Re-Builder no coincide con nada.


Como otros señalan, necesitas hacer coincidir más que solo los tres dígitos. Antes de los dígitos, debes tener un inicio de línea o algo que no sea un dígito. Si emacs admite / D, úselo. De lo contrario, use el conjunto [^ 0-9].

En una palabra:

(^|/D)/d{3}(/D|$)


Deberías usar esto:

"^/d{3}$"


[0-9] [0-9] [0-9] coincidirá con un mínimo de 3 números, por lo que, como mencionó Joe, debe (como mínimo) incluir / by cualquier otra cosa que delimite los números. Probablemente el método más seguro sea:

[^ 0-9] [0-9] [0-9] [0-9] [^ 0-9]


[0-9][0-9][0-9] , [0-9]{3} o /d{3} no funcionan porque también coinciden con "1234".

Entonces depende de lo que es el delimitador.

Si está en una variable, puede hacer ^/[0-9]{3}/$ . Si está delimitado por espacios en blanco, puede hacer /w+[0-9]{3}/w+


Si ingresas la expresión regular de forma interactiva y quieres usar {3} , debes usar barras diagonales inversas para escapar de las llaves. Si no desea hacer coincidir ninguna parte de las cadenas de números más largas, use /b para unir los límites de las palabras alrededor de los números. Esto deja:

/b[0-9]/{3/}/b

Para aquellos que quieran obtener más información sobre /b , consulte los documentos :

coincide con la cadena vacía, pero solo al principio o al final de una palabra. Por lo tanto, /bfoo/b coincide con cualquier aparición de foo como una palabra separada. /bballs?/b combina ball o balls como una palabra separada. /b coincide al principio o al final del búfer independientemente de qué texto aparezca junto a él.

Si desea utilizar esta expresión regular del código elisp, como siempre, debe escapar de las barras invertidas una vez más. Por ejemplo:

(highlight-regexp "//b[0-9]//{3//}//b")


Es bastante simple:

[0-9][0-9][0-9]