我正在編寫一個函數,它將使用Python中的正則表達式從計劃中提取不同的時間。下面是使用BeautifulSoup,我從網站得到時間表的一個例子:00-18:使用正則表達式從計劃中提取時間的麻煩
與discussion17互動談話00紀錄片「佔領隔子」 我們呈現給您塔克西姆蓋齊公園抵制了所有的方式;白天和晚上 ,具有良好的側面和壞sides18.00 - 19:00詩人瑪麗亞麪包車 Daalen '海天Vodoo',詩人從Querido publishers19:00 Food20:30-22:30
如上圖所示,輸入文本的開始時間有無結束時間。將分鐘與小時分開時,使用「:」或「。」也不一致。
使用regex101,我已經做了以下(非常醜陋)的正則表達式,這似乎在所有不同的時間工作:\d\d[:|.]\d\d(\s*.\s*\d\d[:|.]\d\d)?
要搜索我使用下面的代碼Python的文字:
def extract_times(string):
list_of_times = re.findall('\d\d[:|.]\d\d(\s*.\s*\d\d[:|.]\d\d)?', string)
return list_of_times
然而,當我把示例文本從上面這個函數,它返回:
['-18:00', ' - 19:00', '', '-22:30']
我預計像[’17:00-18:00’], [’19:00’]
。
我做錯了什麼?
我不知道pyton,但認爲捕獲組的問題。試試這個'(\ d \ d [:|。] \ d \ d(?:\ s * - \ s * \ d \ d [:|。] \ d \ d)?)' – splash58
IT WORKED !!非常感謝你!!! – nieknel