¿Cómo verificar múltiples espacios consecutivos en una cadena con Python? [duplicar]

Aug 31 2020

Quiero encontrar varios espacios en una cadena usando python. ¿Cómo comprobar si existen varios espacios en una cadena?

mystring = 'this   is a test'

Probé el siguiente código pero no funciona.

if bool(re.search(' +', ' ', mystring))==True:
    # ....

El resultado debe regresar True.

Respuestas

1 deadshot Aug 31 2020 at 14:11

Puede usar split()si no proporciona un delimitador, considerará el espacio como delimitador. después de dividir verifique la longitud. Si la longitud es mayor que uno, tiene espacios.

mystring = 'this   is a test'

if len(mystring.split()) > 1:
    #do something
1 IoaTzimas Aug 31 2020 at 14:15

Puede usar el método string.count (): Si desea verificar si existen múltiples espacios (más de uno y sin importar su longitud), el código es:

mystring.count(' ')>1

Si desea verificar si hay al menos un espacio consecutivo, el código es:

mystring.count('  ')>=1
1 JaniniRami Aug 31 2020 at 14:14

Puede usar re y comparar las cadenas de esta manera:

import re

mystring = 'this  is a test'
new_str = re.sub(' +', ' ', mystring)


if mystring == new_str:
    print('There are no multiple spaces')
else:
    print('There are multiple spaces')
ThierryLathuille Aug 31 2020 at 14:21

La sintaxis que utiliza re.searches incorrecta. Debería serlo re.search(pattern, string, flags=0).

Entonces, puede simplemente hacer, buscando 2 o más espacios:

import re

def contains_multiple_spaces(s):
    return bool(re.search(r' {2,}', s))

contains_multiple_spaces('no multiple spaces')
# False

contains_multiple_spaces('here   are multiple spaces')
# True