簡體   English   中英

python 正則表達式匹配特定模式

[英]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 xxy 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM