7

ユーザーが「Icedtea..」のような値を入力できるゲーム用です。文字列を操作して、句読点を付けずに「Icedtea」を返します。

最もエレガントでシンプルなPythonソリューションを探しています。

試してみました

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

これは、最後に句読点が1つしかない場合に機能します。しかし、それはすべてを網羅しているわけではありません。

Javaソリューションが見つかりました:

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

3 に答える 3

17
>>> 'words!?.,;:'.rstrip('?:!.,;')
'words'
于 2012-05-03T03:35:38.760 に答える
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'
于 2012-05-03T03:54:25.203 に答える
0

この場合、rstripおそらくあなたが望むものです。しかし、一般的に、Java のようなものを Python に翻訳することは難しくありません。直訳すると次のようになります。

import re
subject_string = 'Iced tea..'
result_string = re.sub('([a-z]+)[?:!.,;]*',r'\1',subject_string)
于 2012-05-03T03:40:20.660 に答える