2015-03-23 3 views
0

Почему код ниже не соответствует символу пробела?Как совместить пробел с использованием Regex в Python

import re 

hasSpace = re.compile(' ') 

string = 'hello world' 

if(hasSpace.match(string)): 
    print("Found a space") 
else: 
    print("No space") 

Я также попытался с помощью:

hasSpace = re.compile('\s') 

, но это не соответствует ни. Я также попытался добавить r, чтобы сделать строку сырой, но такой же результат.

Любая подсказка почему?

+1

см функция матч документ, матч сопоставляет с самого начала. Поскольку в начале нет символа пробела, он терпит неудачу. –

+0

Зачем вы используете Regex для этого? 'if '' в строке:' все, что вам нужно. – iCodez

+0

@iCodez шаблон более сложный, но мне нужно сначала совместить пространство. –

ответ

1

Заменить match поиском:

>>> if(hasSpace.search(string)): 
...  print("Found a space") 
... else: 
...  print("No space") 
... 
Found a space 
+1

Спасибо. Выберет ваш ответ, если позволит время. –

1

Возможно, вы захотите использовать метод search. search"scans through a string, looking for any location where this RE matches."

import re 

hasSpace = re.compile(' ') 

string = 'hello world' 

if(hasSpace.search(string)): 
    print("Found a space") # gets printed 
else: 
    print("No space") 

string = 'helloworld' 

if(hasSpace.search(string)): 
    print("Found a space") 
else: 
    print("No space") # gets printed 

Что вы пытаетесь использовать match, который "determines if the RE matches at the beginning of the string."

0

Если вы действительно хотите, чтобы добраться до ответа с помощью матча, то вы можете сделайте это так (не рекомендуется) , так как матч начинается с начала, вам нужно будет совместить 5 букв слова «привет» с «.....» и п совпадают пространство

import re 
hasSpace = re.compile('..... ') 
string = 'hello world' 
if(hasSpace.match(string)): 
    print("Found a space") 
else: 
    print("No space") 

выход

Found a space 
Смежные вопросы