Python <0xa0> <0xad> <0x2003> <0x200b> <0x202a> <0xfeff> のような特殊文字を削除する方法
じゅげむじゅげむごこうのすりきれかいじゃりすいぎょのすいぎょうまつうんらいまつふうらいまつくうねるところにすむところやぶらこうじにぶらこうじぱいぽぱいぽぱいぽのしゅーりんがんしゅーりんがんのぐーりんだいぐーりんだいのぽんぽこなのぽんぽこぴーのちょうきゅうめいのちょうすけ
上記の文字をコピペしてテキストエディタに貼り付けると
上記のような感じで<0x200b>のような特殊文字がテキストの中に混入している
これをpythonのプログラムで消すにはどうすればいいかという解説です
<0x200b>を消すにはreplaceで\u200bを空文字に置換
text = "じゅげむじゅげむ" text = text.replace("\u200b", "")
上記のtext = “じゅげむじゅげむ”のじゅげむとじゅげむの間には目に見えない特殊な文字(<0x200b>)が含まれています
この<0x200b>を消したい場合
replaceで削除するとき第1引数には\u200bと書く必要があります
0xとは?
0xは16進数の接頭語です
0x200bというのは16進数の200bという数値のことで
10進数でいうところの8203です
\uとは?
\uはUnicodeエスケープシーケンスです
Unicodeというのは世界中の文字に番号を割り振った一覧表みたいなものです
- \u0041がA
- \u0042がB
- \u3041がぁ
- \u3042があ
ユニコードの41番はアルファベット大文字のAで、42番はBで、3041番は小さいぁで、3042番は大きいあで…というのが\uffff(10進数でいうところの65,535番)まで決められています
<0xa0>を消すにはreplaceでu”\xa0″を空文字に置換
text = text.replace(u"\xa0", "")
<0x200b>は「ゼロ幅スペース」
<0x200b>は「ゼロ幅スペース」 ネットで調べ物をしていてテキストをコピペするとたまに目には見えない特殊な文字が混ざっていたりする たとえば、「Thisisapen.」という文字をSublime Textなどのテキストエディタに貼...
コメント