標準文字でない文字や、(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. 文字列内の英数字、ハイフン、ピリオド、およびアンダースコア以外の文字をすべて置換します。
- 2. C#文字列内の他のすべての文字をホワイトリストの文字以外に置き換えます
- 3. 文字列内の文字以外の文字をすべて削除する
- 4. 英数字以外の文字で囲まれた文字列を置き換えるJava正規表現
- 5. すべての外国の文字列番号を英語の数字文字列に変換する
- 6. 文字、数字、空白、アンダースコア以外のすべての文字を置換します。
- 7. Python - 文字列内の非アスキー文字を置換する(»)
- 8. 文字列の先頭以外の部分文字列のすべてのインスタンスを置換します。
- 9. Javaは変数内の指定された値以外の文字列内の文字を置換します
- 10. 数字以外のすべての文字を置換するRegEx
- 11. Javascript regex、数字以外のすべての文字を置換する
- 12. 文字列内の最初の非数字文字の位置
- 13. 文字列内の文字の置換
- 14. 文字列内の任意の文字と数字の置換
- 15. preg_splitを英語で分割した文字列(英語以外の文字)
- 16. 文字列jquery内のすべての文字を置き換えます
- 17. アラビア語UTF8 +英文字列以外の英数字を削除する
- 18. 文字列内の最初の文字を置換します
- 19. すべての非数字を文字列の空の文字に置き換えます。
- 20. JS regex:文字列内のすべての数字を置き換えます。
- 21. 文字列内の複数の文字を置換する
- 22. 指定された文字列以降のすべての文字を置換
- 23. SQL Serverは文字列内の文字を置換します
- 24. MySQL:最初の文字列以外の文字列を置換する
- 25. MySQL:文字列のすべての外国文字を置換する
- 26. 文字を英数字と非英数字に分割する
- 27. スウィフトの文字列内のすべての文字を置換する
- 28. 複数の文字列の置換(同じ文字列内)
- 29. 英数字以外のすべてをピリオドで置換してください。
- 30. 動的文字列で動作するように置換する動的文字列以外のすべての文字を置換する
([Pythonで文字列から英数字の文字以外のすべてをストリップ]の可能重複http://stackoverflow.com/questions/1276764/stripping-everything-but-alphanumeric-chars-from -a-string-in-python) – sds