如果我有這樣的字符串: 「我喜歡數字3.142和2.」Python正則表達式從句尾刪除句號
我想刪除2之後但不是3.142中的那個,我該如何執行此操作?基本上,我如何檢查一段時間後的數字是否沒有數字後面的數字,以及如何刪除這段時間?謝謝。
如果我有這樣的字符串: 「我喜歡數字3.142和2.」Python正則表達式從句尾刪除句號
我想刪除2之後但不是3.142中的那個,我該如何執行此操作?基本上,我如何檢查一段時間後的數字是否沒有數字後面的數字,以及如何刪除這段時間?謝謝。
>>> import re
>>> s = "I. always. like the numbers 3.142, 5., 6.12 and 2. Lalala."
>>> re.sub('((\d+)[\.])(?!([\d]+))','\g<2>',s)
'I. always. like the numbers 3.142, 5, 6.12 and 2 Lalala.'
如果你只是想在一個行的末尾刪除一個時期:
>>> import re
>>> sentence = "I like the numbers 3.142 and 2."
>>> re.sub(r'\.+$', '', sentence)
'I like the numbers 3.142 and 2'
如果你想刪除後面沒有數字的任何小數,使用負前瞻:
>>> re.sub(r'\.(?!\d)', '', sentence)
'I like the numbers 3.142 and 2'
Wrikken寫在上面的評論很好的解決, 它消除了點,只有當談到一個數字後不跟一個數字:
import re
sen = "I like the numbers 3.142 and 2. and lalala."
p = re.compile("(?<=\d)(\.)(?!\d)")
new_sen = p.sub("",sen)
print (new_sen) #prints: I like the numbers 3.142 and 2 and lalala.
Google'Negative lookbehinds' :) – 2014-02-17 22:19:21
'/(?<= \ d)\。(?!\ d)/' – Wrikken
如果試圖在行尾刪除一段時間就是您之後的事情,那麼這個數字應該與它無關。如果試圖刪除沒有數字的句點,那麼這是另一回事。 – sln