我認爲我對RegEx非常滿意,以至於我可以閱讀最多的任何一篇,但是這個簡單的(用Python)讓我感到莫名其妙。 www.regexpal.com給出了與iPython不同的結果。這是Python正則表達式中的錯誤嗎?
data = 'four year entrepreneurial program. Students develop and run a business, gain much needed ...'
m = re.compile('entrepreneur|business\s(plan|model)')
m.findall(data)
給['']
怎麼可能吧?如果我換用括號括住了整個事情,它工作得更好,但仍然會返回一個空字符串作爲匹配:
m = re.compile('(entrepreneur|business\s(plan|model))')
m.findall(data)
給[('entrepreneur', '')]
正如我所說的,第一個適用於www.regexpal.com。我還用Python(而不是iPython)測試了它,並且也在那裏失敗。
你期望找到什麼,爲什麼? – jgritty
請注意,如果您將其與regexpal進行比較,您應該使用're.match'或're.search'.m.search(data).group()' - >''entrepreneur'' –
'.findall'正如預期的那樣工作:*返回字符串中所有不重疊匹配的列表*由於在第一個「企業家」不在一個組中,它不會被'.findall'返回。 –