文字を(LISTまたはSTRING内で)定義し、他の文字を..に置き換えるにはどうすればいいですか?文字列内の未知の文字を置換するPython 2.7
例:
strinput = "abcdefg#~"
legal = '.,/?~abcdefg' #legal characters
while i not in legal:
#Turn i into '?'
print output
文字を(LISTまたはSTRING内で)定義し、他の文字を..に置き換えるにはどうすればいいですか?文字列内の未知の文字を置換するPython 2.7
例:
strinput = "abcdefg#~"
legal = '.,/?~abcdefg' #legal characters
while i not in legal:
#Turn i into '?'
print output
文字列の各文字をテストするためにin
を使用し、その後セット内の正当な文字を入れてください。 str.join()
メソッドとconditional expressionメソッドを使用して新しい文字列を作成します。
>>> s = "test.,/?~abcdefgh"
>>> legal = set('.,/?~abcdefg')
>>> s = ''.join(char if char in legal else '?' for char in s)
>>> s
'?e??.,/?~abcdefg?'
>>>
これはチャンクを読み込む大きなファイル、で、以下のようにre.sub(..)
を適用した場合。クラス(角括弧)内の^
が(「以外」を言ってと同様に)否定を意味
>>> import re
>>> char = '.,/?~abcdefg'
>>> re.sub(r'[^' + char +']', '?', "test.,/?~abcdefgh")
'?e??.,/?~abcdefg?'
申し訳ありませんが、私はファイルを直接編集するのではなく、代わりにコンテンツを文字列に保存することを忘れていました。私は私の質問を編集しました。 – Cyanite
StackOverflowに関するここでの回答はすべて一般的です。私はあなたが 're.sub(..)'のアイディアをもっと引き出すことができると確信しています。 – SuperSaiyan
@AustinSmith - これは必要なものを実現します。 – wwii
あなたが気にする文字はASCII以外のものになりますか? –
"私の質問は、どのように(LISTまたはSTRING内の)文字を定義し、他の文字を..に置き換えることができますか?あなたがこのような簡単なアプローチをとるなら、dictのための素晴らしい仕事のように思えます。未定義? 'KeyError'をキャッチし、それを処理します。 –
私が使用できない文字がわからない場合、どうすれば辞書を使うことができますか? @ Two-BitAlchemist – Cyanite