[英]How can I write a regular expression that starts with a particular word match and continues until it hits a period
我嘗試編寫一個與特定單詞匹配的正則表達式,並繼續匹配,直到遇到句點。 例如:
文本:
除了處女,聲稱或者先發或者從未贏過三場比賽或者可選的聲稱價格25,000美元之外,從未贏過兩場比賽。 三歲兒童,118磅; 年齡較大,123磅。 自3月9日以來的非贏家$ 24,000允許2磅。
期望的比賽:
除了處女,聲稱或者先發或者從未贏過三場比賽或者可選的聲稱價格25,000美元之外,從未贏過兩場比賽。
正則表達式:
(?<Match1>Which\s[a-zA-Z]*[.])
不幸的是,我提出的表達式捕獲了所有文本,似乎延伸到最后一個時期而不是第一個時期
它實際上非常簡單。 使用[^.]*
匹配所有字符,但不包括下一個字符.
用\\b
邊界圍繞你想要的單詞。 我附上了決賽.
作為\\.
假設您要在匹配的輸出中包含它。
(?<Match1>\bWhich\b[^.]*\.)
(?<Match1>Which[^.]*?[.])
除了一段時間之外的任何事情的非貪婪匹配。
很簡單:
([^.]*This[^.]*\.)
看到它在行動: http : //regexr.com?32b8b
簡單地用你的單詞替換“This”,你應該匹配所有“句子”(如果你真的想要這樣做,你應該考慮在你的句號中添加“!”和“?”以匹配那些結尾的句子,太)。
編輯:如果單詞在其中,則匹配整個句子,如果你只想從單詞向前,即如果單詞在句子的中間,則省略第一個[^。] *它應該工作。
(This[^.]*\.)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.