2016-11-10 12 views
0

を交換し、私はそれは特別な形式になるように、文字列を変換する特殊文字を削除して

EX私の文字列を変換する必要があります。ここでは

string = "the cow's milk is a-okay!" 

converted string = "the-cows-milk-is-a-okay" 
+1

は素晴らしいですね。まだ何かを試した? –

+0

これはおそらく '' - '。join(s.split()) 'ですが、シンボルを削除すると曖昧になります –

+1

[Pythonでの文字列処理](http://stackoverflow.com/questions/5574042/string- –

答えて

0
import re 

s = "the cow's milk is a-okay!" 
s = re.sub(r'[^a-zA-Z\s-]+', '', s) # remove anything that isn't a letter, space, or hyphen 
s = re.sub(r'\s+', '-', s) # replace all spaces with hyphens 
print(s) # the-cows-milk-is-a-okay 

「スペース」は任意のですタブと改行を含む空白文字。これを変更するには、\sを実際のスペース文字に置き換えます。

複数のスペースの実行は、1つのハイフンに置き換えられます。これを変更するには、re.subへの2回目の呼び出しで+を削除します。この(欠点はハイフン-残ることができない)、

import string 

s = "the cow's milk is a-okay!" 

table = string.maketrans(" ", "-") 
new_s = s.translate(table, string.punctuation) 

print(new_s) 
# the-cows-milk-is-aokay 
+0

'\ W +'は良いでしょうか? –

+2

@ cricket_007いいえ、スペース、ハイフン、またはアンダースコアには正しくありません。 –

+0

@AlexHallありがとうございました!私は本当にこれ以上のことを勉強しなければなりません。 –

0

>>> s = "the cow's milk is a-okay!" 
>>> ''.join(('-' if el == " " else el if el not in "?.!:;/'" else "" for el in s)) 
'the-cows-milk-is-a-okay' 
>>> 
+0

これはOPが望んでいたものではありません。皮肉なことに、あなたはあなたの答えにそれを認めます。 –

0
>>> string = "the cow's milk is a-okay!" 
>>> string 
"the cow's milk is a-okay!" 
>>> string = string.replace(' ','-') 
>>> for char in string: 
...  if char in "?.!:;/'": 
...    string = string.replace(char,'') 
... 
>>> string 
'the-cows-milk-is-a-okay' 
0

についての簡単なジェネレータ式は、この達成するために使用することができる方法

関連する問題