【Python】文字列の置換や削除で使う記号の一覧を取得する方法 ⇒ string モジュールを使う

Python で文字列の置換や削除をするときに、対象となる記号の一覧が欲しくなりました。

その取得方法です。Python の stringストリング モジュールを使います。

string モジュールの定数を参照することで、『半角英数字』、『半角記号』、『特殊文字』の一覧を取得することができました。

Python マニュアルの場所です。

string — 一般的な文字列操作
文字列定数

string モジュールの中には、文字列定数として、半角数字の一覧、半角アルファベットの一覧、特殊文字の一覧などがありました。

これらは、正規表現せいきひょうげんで記号用のパターンを作るときに便利でした。

Python マニュアル
re — 正規表現操作

string モジュールの表示結果です。

Python 3.6.6 (v3.6.6:4cf1f54eb7, Jun 27 2018, 03:37:03) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import string
>>> string.ascii_letters # アスキー レタース
'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
>>> string.ascii_lowercase # アスキー ローワーケース
'abcdefghijklmnopqrstuvwxyz'
>>> string.ascii_uppercase # アスキー アッパーケース
'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
>>> string.digits # ディジッツ
'0123456789'
>>> string.hexdigits # ヘックス ディジッツ
'0123456789abcdefABCDEF'
>>> string.octdigits # オクト ディジッツ
'01234567'
>>> string.punctuation # パンクチュエイション
'!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~'
>>> string.printable # プリンタブル
'0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~ \t\n\r\x0b\x0c'
>>> string.whitespace # ホワイトスペース
' \t\n\r\x0b\x0c'
シングルクォーテーション(')などの前にあるバックスラッシュは、エスケープ処理のためのバックスラッシュです。

これらは、いわゆる ASCIIアスキー コードの部分です。

参考ページ
ASCII – Wikipedia(日本語ページ)
ASCII – Wikipedia(英語ページ)

こういった文字列は、自分で用意してもいいのですが、あらかじめ用意されているものを使ったほうが便利で安心です。ミスもきっと減らせます。

一覧を取得するときに、どの定数を使えばいいのか?

記号きごうの一覧を取得するときは『パンクチュエイション (string.punctuation)』、特殊文字とくしゅもじの一覧を取得するときは『ホワイトスペース (string.whitespace)』、まとめて取得するときは『プリンタブル (string.printable)』の定数が便利でした。

ところで、HTML や PDF のテキストには、これらの一覧にない記号や空白(スペース)もたくさんありました。ですが、それでも string モジュールは、正規表現パターンを作る時のベースとして便利でした。Python 標準ですぐに出せるところが、とても便利でした。

タイトルとURLをコピーしました