2015-04-22 6 views
2

Я знаю, как использовать питон, чтобы сообщить точное совпадение в строке:Как найти индекс точного соответствия?

import re 
word='hello,_hello,"hello' 
re.findall('\\bhello\\b',word) 
['hello', 'hello'] 

Как сообщает индексы точных совпадений? (В данном случае, от 0 до 14)

+0

Проверить эту ссылку. Аналогичный вопрос http://stackoverflow.com/questions/4664850/find-all-occurrences-of-a-substring-in-python –

+0

Возможный дубликат [Найти индексы всех совпадений регулярных выражений в Python?] (Http: // stackoverflow.com/questions/3519565/find-the-indexes-of-all-regex-matches-in-python) – HamZa

ответ

0

Использование finditer:

[(g.start(), g.group()) for g in re.finditer('\\b(hello)\\b',word)] 
# [(0, 'hello'), (14, 'hello')] 
+0

Это работает. Благодаря! – Sirian

+0

@Sirian не стесняйтесь [голосовать и принимать] (http://stackoverflow.com/help/someone-answers). Ура! – tzaman

1

использовать вместо word.find ('привет', х)

word = 'hello,_hello,"hello' 
tmp = 0 
index = [] 
for i in range(len(word)): 
    tmp = word.find('hello', tmp) 
    if tmp >= 0: 
     index.append(tmp) 
     tmp += 1 
+0

'str.find' вернет все вхождения, не соблюдая условия граничного слова в заданном вопросе. – tzaman