La cadena que estoy probando puede coincidir con [\w-]+
. ¿Puedo probar si una cadena se ajusta a esto en Python, en lugar de tener una lista de los caracteres no permitidos y pruebas para eso?¿Cómo puedo verificar si una cadena solo contiene caracteres alfanuméricos y guiones?
Respuesta
Si desea probar una cadena con una expresión regular, utilizar la biblioteca re
import re
valid = re.match('^[\w-]+$', str) is not None
Python tiene expresiones regulares así:
import re
if re.match('^[\w-]+$', s):
...
O puede crear una lista de permitió caracteres:
from string import ascii_letters
if all(c in ascii_letters+'-' for c in s):
...
re.match ('^ [\ w -] + $', s) devuelve una instancia de MatchObject correspondiente. Devuelve None si la cadena no coincide con el patrón. Debe ser comparado con None. – Temak
@Enor ¿Por qué? Cualquier objeto de coincidencia será verdadero, Ninguno es el único valor de falsy posible. –
Para probar si la cadena contiene solamente alfanuméricos y guiones, me gustaría utilizar
import re
found_s = re.findall('^[\w-]+$', s)
valid = bool(found_s) and found_s[0] == s
Vaya, no importa, tan innecesario – richard
Sin importar cualquier módulo simplemente usando Python puro, eliminar cualquier ninguno alfa, numérico, excepto guiones.
string = '#Remove-*crap?-from-this-STRING-123$%'
filter_char = lambda char: char.isalnum() or char == '-'
filter(filter_char, string)
# This returns--> 'Remove-crap-from-this-STRING-123'
O en una sola línea:
''.join([c for c in string if c.isalnum() or c in ['-']])
Esta debería ser la respuesta aceptada, no necesita paquetes regex o externos para resolver esto. – Roganartu
- 1. Verificar si la cadena contiene solo dígitos
- 2. ¿Comprobar cadena si contiene solo caracteres latinos?
- 3. ¿Cómo puedo verificar si una cadena Perl contiene letras?
- 4. Cómo comprobar si una cadena contiene solo caracteres específicos
- 5. ¿Cómo determinar si una cadena tiene caracteres no alfanuméricos?
- 6. ¿Cómo comprobar si una cadena contiene dos caracteres de asterisco?
- 7. ¿Cómo puedo verificar si la cadena contiene caracteres y espacios en blanco, no solo espacios en blanco?
- 8. ¿Cómo saber si la cadena contiene caracteres no alfanuméricos en C# /. NET 2.0?
- 9. ¿Cómo verificar si una cadena de php contiene solo letras y dígitos en inglés?
- 10. Verificar si la cadena contiene letras iniciales
- 11. Cómo verificar si un TextView contiene una cierta cadena
- 12. ¿Cómo reconocer si una cadena contiene caracteres unicode?
- 13. Cómo verificar si una cadena contiene http: // al inicio
- 14. ¿Cómo puedo verificar que una cadena contiene una fecha?
- 15. ¿Cómo puedo verificar si existe una cadena en otra cadena?
- 16. ¿Cómo detectar si una cadena contiene caracteres especiales?
- 17. iOS: ¿cómo verificar si una cadena tiene solo dígitos?
- 18. ¿Cómo crear una expresión regular para aceptar solo caracteres alfanuméricos?
- 19. ¿Cómo puedo verificar si una cadena contiene un carácter en C#?
- 20. RegEx para Javascript para permitir solo caracteres alfanuméricos
- 21. En Java, ¿cómo puedo verificar si una cadena contiene una subcadena (ignorando el caso)?
- 22. ¿Cómo elimino caracteres no alfanuméricos (espacios incluidos) de una cadena?
- 23. ¿Cómo puedo verificar si una matriz de bytes contiene una cadena Unicode en Java?
- 24. Cómo comprobar los caracteres alfanuméricos
- 25. Permitir solo caracteres alfanuméricos para un UITextField
- 26. Eliminación de caracteres no alfanuméricos de una cadena
- 27. ¿Manera elegante de contar caracteres alfanuméricos en una cadena?
- 28. Verificar si una cadena contiene un número entero
- 29. ¿Cómo puedo saber rápidamente si una lista contiene solo duplicados?
- 30. jQuery: ¿cómo puedo verificar si un atributo de elemento contiene parte de una cadena?
Sin indicación local caracteres alfanuméricos coinciden solamente '[a-zA-Z0-9] +', 'no [\ w] +'. – greg