Remove periods at the end of sentences in python

Sarvavyapi picture Sarvavyapi · Sep 16, 2012 · Viewed 7.8k times · Source

I have sentences like this - "this is a test. 4.55 and 5,000." I want to remove the period at the end of the sentences, but not between numbers. My output has to be - "this is a test 4.55 and 5,000" I tried the below options, but not getting the required output:

wordList = "this is a test. 4.55 and 5,000."
pattern3 = re.compile("[^\w\d]+")
wordList = pattern3.sub(' ',wordList)

Also tried the below 2:

pattern3 = re.compile("[^\w]|^[0-9]\.[0-9]")
pattern3 = re.compile("[^\w]|^([0-9]/.[0-9]+)")

I don't know where I am going wrong. Can someone give me some pointers? I searched the earlier posts and tried them, but they are not working for my situation.

Answer

user1675187 picture user1675187 · Sep 16, 2012

Try a negative lookahead:

\.(?!\d)

What this matches is any period that's not followed by a digit.