Quiero hacer coincidir una cadena como 19740103-0379 o 197401030379, es decir, el guión es opcional. ¿Cómo logro esto con regexp?Patrón Regexp Carácter opcional
Respuesta
Por lo general, puede usar -?
. Alternativamente, puede usar -{0,1}
pero debería encontrar que ?
para "cero o una ocurrencia de" es compatible casi en todas partes.
pax> echo 19740103-0379 | egrep '19740103\-?0379'
19740103-0379
pax> echo 197401030379 | egrep '19740103\-?0379'
197401030379
Si desea aceptar 12 dígitos con cualquier número de guiones allí en cualquier lugar, puede que tenga que hacer algo como:
-*([0-9]-*){12}
que es básicamente cero o más guiones seguidos de 12 casos de (un dígito seguido por cero o más guiones) y capturará todo tipo de cosas maravillosas como:
--3-53453---34-4534---
(por supuesto, se debe utilizar en lugar de \d
[0-9]
si su motor regex tiene soporte para eso).
Se podría probar diferentes:
\d*
coincide con una cadena que consta solamente de dígitos
\d*-\d*
coincide con una cadena de dígitos de formato - tablero - dígitos
[0-9\-]*
coincide con una cadena que consiste en líneas horizontales y los dígitos
puedes combinarlos a través |
(o), por lo que tiene, por ejemplo, (\d*)|(\d*-\d*)
: partidos formatos solo digitos y digitos-dash-digits.
- 1. Regexp: Cualquier carácter excepto secuencia
- 2. Expresión regular: cero o más ocurrencias del carácter opcional/
- 3. Regex cómo hacer coincidir un carácter opcional
- 4. Carácter opcional en la máscara de entrada
- 5. Carácter ilegal del patrón 'Y' en Ubuntu
- 6. patrón de expresión de Java con cadena opcional
- 7. Python RegExp bandera global
- 8. MySql No me gusta Regexp?
- 9. Combinar Regexp
- 10. Groovy Date Parsing - X es un carácter de patrón ilegal
- 11. C# XDocument Xsd validación de patrón con carácter $
- 12. Emacs alinear-regexp en = == pero no
- 13. División/conflicto de RegExp al tokenizar Javascript
- 14. La restricción carácter de espacio para hacer</head> opcional
- 15. Llamadas consecutivas a la prueba RegExp fallan para el patrón con la opción global
- 16. regexp con lang ruso
- 17. Regexp para un doble
- 18. Regexp de JavaScript.
- 19. Cambiar las banderas RegExp
- 20. Invertir coincidencia con regexp
- 21. Regexp compilable en Python
- 22. javascript multilínea regexp reemplazar
- 23. Diferencias JavaScript RegExp
- 24. ¿Es opcional la opción EndInvoke(), opcional o definitivamente no es opcional?
- 25. MySQL REGEXP: entradas coincidentes en blanco
- 26. Problema con regexp python y sqlite
- 27. Powershell Regex - grupo denominado opcional coincide
- 28. boost :: alternativa opcional en C++ Standard Library
- 29. PL/SQL opcional donde
- 30. Opcional Anónimo Método
Especifique el idioma y/o la biblioteca de expresiones regulares que está utilizando. – reinierpost
Puede usar [0-9] {8} -? [0-9] {4} – Ragnis