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 defoo
como una palabra separada./bballs?/b
combinaball
oballs
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]