1 回答
TA貢獻1876條經驗 獲得超7個贊
您可以使用可以使用(或)安裝的PyPiregex模塊:pip install regexpip3 install regex
import regex
p = r'(?<=\b(?P<subject>il|elle)\b.{0,10})?\b(?P<predicate>dit|mange)\b(?=.{0,10}\b(?P<subject>il|elle)\b)?'
print( [x.groupdict() for x in regex.finditer(p, 'elle dit et dit-elle et il mange ... dit-il', regex.S)])
查看在線 Python 演示
該模式可以從變量動態創建:
subjects = ['il', 'elle']
predicates = ['dit', 'mange']
p = fr'(?<=\b(?P<subject>{"|".join(subjects)})\b.{0,10})?\b(?P<predicate>{"|".join(predicates)})\b(?=.{0,10}\b(?P<subject>{"|".join(subjects)})\b)?'
細節
(?<=\b(?P<subject>il|elle)\b.{0,10})?- 可選回顧以抓取整個單詞il或elle0 到 10 個字符內的單詞\b(?P<predicate>dit|mange)\b- 整個單詞dit或mange(?=.{0,10}\b(?P<subject>il|elle)\b)?- 可選的期待從謂詞中獲取整個單詞il或0 到 10 個字符內的內容。elle
添加回答
舉報
