如何删除字符串后面的所有标点符号?

时间:2012-05-03 03:34:34

标签: python regex string

这是一个用户可以输入“冰茶”之类的值的游戏。 我想操纵字符串返回“冰茶”,没有拖尾标点符号。

寻找最优雅/最简单的python解决方案。

尝试

def last_character(word):
  if word.endswith('.' or ','):
      word = word[:-1]
  return word 

如果最后只有一个标点符号,则可以正常工作。但它并非包罗万象。

找到Java solution

String resultString = subjectString.replaceAll("([a-z]+)[?:!.,;]*", "$1");

3 个答案:

答案 0 :(得分:17)

>>> 'words!?.,;:'.rstrip('?:!.,;')
'words'

答案 1 :(得分:0)

在这种情况下,rstrip可能就是你想要的。但总的来说,将Java这样的东西翻译成Python并不难。直接翻译如下:

import re
subject_string = 'Iced tea..'
result_string = re.sub('([a-z]+)[?:!.,;]*',r'\1',subject_string)

答案 2 :(得分:0)

import string
s='aaa...,'
count= 0
>>> for l in s[::-1]:
...     if l in string.punctuation:
...             count = count +1
...     else:
...             break
>>> s[:c]
'aaa'