I am using this function to check if a string contains multiple white spaces:
def check_multiple_white_spaces(text):
return " " in text
and it is usually working fine, but not in this following code:
from bs4 import BeautifulSoup
from string import punctuation
text = "
Hello world!!
\r\n\r"text = BeautifulSoup(text, 'html.parser').text
text = ''.join(ch for ch in text if ch not in set(punctuation))
text = text.lower().replace('\n', ' ').replace('\t', '').replace('\r', '')
print check_multiple_white_spaces(text)
The final value of text variable is hello world , but I don't know why the check_multiple_white_spaces function is returning False instead of True.
How can I fix this?
解决方案
If you were to print the contents of text using repr(), you will see that it does not contain two consecutive spaces:
'hello \xa0 \xa0 \xa0world '
As a result, your function correctly returns False. This could be fixed by converting the non-break space into a space:
text = text.replace(u'\xa0', u' ')