3 回答

TA貢獻(xiàn)1813條經(jīng)驗(yàn) 獲得超2個(gè)贊
您可以使用以下模式:
ing(?=\w)
這僅適用于包含whiching且后跟另一個(gè)單詞字符的單詞。這是一個(gè)例子:
inp = 'singer'
if re.search(r'ing(?=\w)', inp):
print('singer is a MATCH')
inp = 'sing'
if re.search(r'ing(?=\w)', inp):
print('sing is a MATCH')
這打?。?/p>
singer is a MATCH
編輯:
要匹配包含非終結(jié)符的整個(gè)單詞ing,我建議使用re.findall:
inp = "Madonna is a singer who likes to sing."
matches = re.findall(r'\b\w*ing\w+\b', inp)
print(matches) # prints ['singer']

TA貢獻(xiàn)1820條經(jīng)驗(yàn) 獲得超2個(gè)贊
如果單詞不能以 ing 結(jié)尾但必須包含 ing:
\b\w*ing(?!\w*ing\b)\w+
解釋
\b
一個(gè)字邊界\w*
匹配0+單詞字符ing
匹配所需的ing
(?!\w*ing\b)
否定前瞻,斷言 theing
不在單詞末尾\w+
匹配 1+ 個(gè)單詞字符,因此后面必須至少有一個(gè)字符
例如
import re
items = ["singer","singing","ing","This is a ing testing singalong"]
pattern = r"\b\w*ing(?!\w*ing$)\w+\b"
for item in items:
result = re.findall(pattern, item)
if result:
print(result)
輸出
['singer']
['singalong']

TA貢獻(xiàn)1847條經(jīng)驗(yàn) 獲得超11個(gè)贊
您可以使用此模式:
import re
pattern = re.compile('\w*ing\w+')
print(pattern.match('sing')) # No match
print(pattern.match('singer')) # Match
添加回答
舉報(bào)