2016-09-06 8 views
-1

空白の残りの部分を残しながら、/に隣接する文字列内の空白を削除したいと思います。Pythonは空白を条件付きで削除します

例えば、私に文字列98/100 xx 3/ 4 and 5/6があるとします。私の例にとって望ましい結果は98/100 xx 3/4 and 5/6です。 (.split(' ')を次のステップとして使用し、意味のある数字、つまり98/100,3/4、および5/6を最終結果として抽出できるように)。注:他の演算子を心配する必要はなく、/を検索したいだけです。

これはおそらくreを使用するべきですが、わかりません。どんな助けもありがとう!

---------------------私のアプローチ------------------

私は[index_num.end(0) for index_num in re.finditer('/', test)]を使用しました。/のインデックスを見つけるためにtest = '98/100 xx 3/ 4 and 5/6'を使用し、前または次が空白であるかどうかを確認します。それは理想的ではないし、もっと簡単な方法があると思う。

+2

'私はそれを理解できません ' - あなたが試したことを見せて、あなたに欠けているものを見せてくれる;] – inspectorG4dget

+0

xxとは何か、数字とオペレータの間のスペース?また、意味のある数字*を抽出するほうが簡単かもしれません。 –

+0

@ inspectorG4dget '/'のインデックスを見つけるためにre.finditer( '/'、test)] 'のindex_numに' [index_num.end(0)]を使い、前または次が空白かどうかを確認します。それはアイデアではなく、私は簡単な方法があると信じています。私の質問を編集し、これらを追加します、ありがとう! – Chianti5

答えて

4

あなたはstr.replaceの代わりに正規表現とスラッシュの前と後の空白を削除することができます。

>>> '98/100 xx 3/ 4 and 5/6'.replace(' /','/').replace('/ ','/') 
'98/100 xx 3/4 and 5/6' 
+0

これは ''98/100 xx 3/4と5/6'.replace( '/','/').replace('/'、 '/')'または複数のスペースを持つ文字列では失敗します数字と '/' –

3

ヒント:任意の空白の量(だけでなく、空白文字だけでなく、タブを見つける正規表現など)は、r'\s*/\s*'です。正規表現はアポストロフィの間にあります。ピリオドは私の文の終わりにすぎず、rはアポストロフィの中の文字列を「生の」文字列として扱うようにPythonに指示します。

空白文字だけを検索するのではなく、空白文字自体を検索する場合は、正規表現はr' */ *'です。アスタリスクの前のスペースに注意してください。

これは宿題のように聞こえるので、私はあなたに残しています。

関連する問題