簡體   English   中英

Python正則表達式僅刪除兩個1個字母單詞之間的空格

[英]Python regex remove spaces only between two 1 letter words

我嘗試編寫如下代碼:

輸入:“ ab ccc”->“ ab ccc”

輸入:“ aa bb”->“ aa bb”

輸入:“ aa bb cd”->“ aa bb cd”

我成功編寫了一個regexp模板,該模板可以找到“ ab”大小寫,但是我不確定如何僅刪除空格。 這是我的嘗試:

import re
sentence = "a b cc"
print(sentence)
pattern = re.compile(r'[^\s]{1}\s[^\s]{1}')
sentence = re.sub(pattern, 'xx', sentence)
print(sentence)

您應該能夠將這些單詞與

\b([a-z]) (?=[a-z]\b)

然后替換為

\g<1>

這將匹配一個字母單詞(由單詞邊界確保)並捕獲它。 然后匹配一個空格,並確保其后是另一個單個字母詞。 替換是第一個被捕獲的組。

Python中

import re
sentence = "a b cc e ddd f g h"
pattern = re.compile(r'\b([a-z]) (?=[a-z]\b)', re.I)
sentence = re.sub(pattern, r'\g<1>', sentence)
print(sentence)

將輸出ab cc e ddd fgh

另請參閱https://regex101.com/r/y2chHw/1

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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