標準文字でない文字や、(a-zまたは0-9)などの文字をアスタリスクで置き換える文字列があります。たとえば、 "h^&ell"、| ow] {+ orld "は" h * ell * o * w * orld "に置き換えられます。 "^ &"のような複数の文字が1つのアスタリスクに置き換えられることに注意してください。これをどうやってやりますか?文字列内の非英数字以外の文字をすべて置換します。
答えて
正規表現への救済!
import re
s = re.sub('[^0-9a-zA-Z]+', '*', s)
例:
>>> re.sub('[^0-9a-zA-Z]+', '*', 'h^&ell`.,|o w]{+orld')
'h*ell*o*w*orld'
ユニコードをたくさん扱う場合は、非ASCIIユニコードシンボルをすべて保持する必要があります: 're.sub(" [\ x00- \ x2F \ x3A- \ x40 \ x5B- \ 012 ")。 – zhazha
文字列にスペースを入れたい場合は、角かっこ内にスペースを入れてください:s = re ( '[0-9a-zA-Z] +'、 '*'、s) – stackPusher
ニシキヘビの方法。
print "".join([ c if c.isalnum() else "*" for c in s ])
これはしかし、複数の連続した不一致の文字をグループ化を扱っていない、すなわち、正規表現ソリューションのよう
"h^&i => "h**i
ない"h*i"
。
試してみてください。
s = filter(str.isalnum, s)
編集: はOPが '*' で非文字を置き換えるために望んでいることに気づきました。私の答えは合わない
\W
にはすべての非英数字[a-zA-Z0-9]が含まれています。マニュアルを参照してください、https://docs.python.org/2/library/re.html
Import re
replaced_string = re.sub('\W+', '*', 'h^&ell`.,|o w]{+orld')
output: 'h*ell*o*w*orld'
- 1. 英数字以外の文字で囲まれた文字列を置き換えるJava正規表現
- 2. 文字、数字、空白、アンダースコア以外のすべての文字を置換します。
- 3. 文字列内の文字の置換
- 4. 数字以外のすべての文字を置換するRegEx
- 5. Javascript regex、数字以外のすべての文字を置換する
- 6. JS regex:文字列内のすべての数字を置き換えます。
- 7. すべての非数字を文字列の空の文字に置き換えます。
- 8. アラビア語UTF8 +英文字列以外の英数字を削除する
- 9. MySQL:文字列のすべての外国文字を置換する
- 10. 複数の文字列の置換(同じ文字列内)
- 11. 文字を英数字と非英数字に分割する
- 12. 文字列内の文字位置を検索して置き換えます。
- 13. Javascript文字列内のutf文字を置き換えます
- 14. XSLT - 文字列内の文字数を置き換え
- 15. アポストロフィを除くすべての非英数字にJava文字列を分割
- 16. Hex以外のPHP用の英数字文字列エンコーダはありますか?
- 17. 英数字とスペースを除くすべての文字を除外します。
- 18. Javascript:文字列内で大文字とそれに続くすべての文字を置き換えます。
- 19. 文字列から数字、ドットまたはマイナス以外の文字列をすべて削除する方法
- 20. 文字列置換()/ regex replace - 文字列の配列の文字列を置換しますか?
- 21. 文字列内の文字を置換する
- 22. 文字列内のhtml文字エンティティを置換する
- 23. 文字列内の文字を置換する
- 24. 文字列間の文字の置換
- 25. 文字列変数(VBA)内の複数の文字を置換する
- 26. 英語以外の文字のカスタムフォント
- 27. 文字列内の '' 'を置換する
- 28. ユニークな5文字の英数字の文字列を作成
- 29. 数字、 "、"、 "。"以外の文字列からすべての文字を削除する方法Rubyを使って?
- 30. 文字列内の角括弧をすべて置換する
([Pythonで文字列から英数字の文字以外のすべてをストリップ]の可能重複http://stackoverflow.com/questions/1276764/stripping-everything-but-alphanumeric-chars-from -a-string-in-python) – sds