2015-04-22 62 views
2

我知道如何使用Python字符串中的報告精確匹配:如何找到完全匹配的索引?

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

This works。謝謝! – Sirian

+0

@ Sirian隨時可以[接受並投票](http://stackoverflow.com/help/someone-answers)。乾杯! – tzaman

1

改用word.find( '你好',X)

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