[英]python regex to match a specific pattern
我需要一個正則表達式來匹配以下模式:
'R es ponns ib il it ie s, s kill s, r eq ui re d, s ap'
我的理解是這些異常的格式是:'a aaa aa, aaa a',如果這個詞只有三個字母,那就是'a aa',上面提到的只是一些例子,還有更多有這個奇怪的間距問題的單詞。
有人可以幫我弄這個嗎? 目標是匹配這些模式並刪除這些空格並使它們成為正常單詞。 先感謝您。
我們可以在這里嘗試使用re.sub
以及回調 function:
inp = 'R es po ns ib il it ie s, s ki ll s, r eq ui re d, s ap'
output = re.sub(r'\w(?: \w{2})*(?: \w{1,2})?', lambda m: m.group().replace(' ', ''), inp)
print(output) # Responsibilities, skills, required, sap
這里的策略是匹配每個x xx xx
或y yy y
項,然后去掉回調中的空格。
我不確定我是否正確理解您的問題,但試試這個:
>>> import re
>>> text = 'R es po ns ib il it ie s, s ki ll s, r eq ui re d, s ap'
>>> re.sub(r'(\w)((?: \w\w)+)( \w?\w?)?,?',
>>> lambda match: (match[1]+match[2]+(match[3] if match[3] else '')
>>> ).replace(' ', ''), text)
'Responsibilities skills required sap'
您可以在以下位置測試正則表達式: https://regex101.com/r/mCjcNQ/1
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.