我需要一個正則表達式來匹配以三個單詞之一結尾的句子。我需要一個正則表達式來匹配以兩個特定單詞之一結尾的句子
例如,假設三個詞是:英里和碼。
My_String = 2012年10月5日在華盛頓特區舉辦的一場比賽中,有400名選手參加比賽。比賽的距離是十英里。
鑑於我想匹配的字符串=比賽的距離是十英里。
我曾嘗試以下:正則表達式= /.\s.*[miles.|yards.]/
和match = match.regex(My_String)
`
但是,這我感興趣的句子,以及我感興趣的句子之前,匹配所有的句子。
更新:
基里爾舒克想出了,似乎讓我很接近(見下文)的解決方案。不幸的是,當我將它放入Rubular表達式測試器時,它只是簡單地強調了目標語句,但不會將其作爲匹配返回。
我開始認爲Kirill的表達式實際上正在工作,但它可能不支持我用來測試它的Rubular引擎。
最後更新:
下面的表達式匹配成功的目標一句:
([^.]*(?:miles|yards)\.)
感謝大家的幫助。
這非常接近。當我在Rubular中測試時,它會突出顯示整個句子,但只會返回實際比賽的碼數或英里數。 – Mutuelinvestor
@Mutuelinvestor,我已經更新了答案。現在,正則表達式包含不匹配的組('?:')。嘗試一下。我不知道你的正則表達式引擎是否支持這個功能。 –
並不完全。現在它突出顯示句子,但不會返回任何內容作爲匹配。這是做什麼的?我不熟悉它。 – Mutuelinvestor