次のような一致文字列が必要です:
what.are you doing?
ドットの後ろに文字が あり、「。」を置き換える場合に一致します。と "。 "
のような結果:
what. are you doing?
より多くの例
入力
uh....i don't know
出力
uh.... i don't know
入力
do you know....that thing?
出力
do you know.... that thing?
これはあなたのケースに合うはずです:
re.sub(r'(?<=\S)\.(?=\w)', '. ', s)
(?<=...)
これは、ドットの前にスペース以外の文字があるかどうかをチェックする肯定的な後読みアサーションを使用します\S
。肯定の後読みアサーション(?=\w)
は、ドットの後に英数字が続くかどうかをチェックします。
私はこれでかなり遅れています。ただし、別のオプションを共有したかった:
re.sub(r'\.(\w)', '. \\1', s)
Explanation:
\.(\w)
| |
| ----> catch an alphabet letter in group '()' which is referenced later in replacement by \\1 (because it's 1st caught group)
escape '.'
それが役に立てば幸い :)