1 回答

TA貢獻1876條經(jīng)驗 獲得超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 演示
該模式可以從變量動態(tài)創(chuàng)建:
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)?'
細節(jié)
(?<=\b(?P<subject>il|elle)\b.{0,10})?
- 可選回顧以抓取整個單詞il
或elle
0 到 10 個字符內(nèi)的單詞\b(?P<predicate>dit|mange)\b
- 整個單詞dit
或mange
(?=.{0,10}\b(?P<subject>il|elle)\b)?
- 可選的期待從謂詞中獲取整個單詞il
或0 到 10 個字符內(nèi)的內(nèi)容。elle
添加回答
舉報