問題

私は文の任意の部分で2文字の間のスペースを削除しようとしています。たとえば、次のフレーズ:

 R Z EXCAVATING AND LOGGING
EXCAVATING R Z AND LOGGING
 

になるはずです

 RZ EXCAVATING AND LOGGING
EXCAVATING RZ AND LOGGING
 

私は次の正規表現([A-Z](.*?)[A-Z])を試しましたが、私は2つの文字の間のスペースを取り除くことができませんでした。

何か案が?

  ベストアンサー

あなたは

 text = re.sub(r'([A-Z])\s+(?=[A-Z])', r'', text)
 

正規表現デモを参照してください

詳細

  • - 単語境界
  • ([A-Z]) - グループ1のキャプチャーリング:大文字
  • \s+ - 1 + whitespaces ...
  • (?=[A-Z]) - すぐに大文字の後に char (letter, digit, _) という単語が続きません。

  同じタグがついた質問を見る

regexpython-3.x