2014-09-25 3 views
1

Я не могу совместить символ вопроса, хотя я избежал его.
Я попытался сбежать с несколькими обратными косыми чертами, а также с помощью re.escape().Regex не может избежать вопросительного знака?

Что мне не хватает?

Код:

import re 

text = 'test?' 
result = '' 

result = re.match(r'\?',text) 

print ("input: "+text) 
print ("found: "+str(result)) 

Выход:

input: test? 
found: None 

ответ

3

re.match только соответствует шаблону в начале строки; как и в документации:

Если ноль или более символов в начиная строки соответствует шаблону регулярного выражения, возвращает соответствующий объект матча.

так, либо:

>>> re.match(r'.*\?', text).group(0) 
'test? 

или re.search

>>> re.search(r'\?', text).group(0) 
'?' 
+0

спасибо, я не знаю, что такое "начало" строки означает (если строка не содержит пробелов), так как регулярное выражение обычно соответствует любой позиции. – radry

+2

@radry это не о регулярном выражении, а о функции, которая использует это регулярное выражение. –

Смежные вопросы