どんなに長い文章でも12桁の数の間にハイフンが2つ入る電話番号を見つけるっていうコードがプログラミングの本「退屈なことはPythonにやらせよう」の中に書かれています。

 

 

 

 

 

def phone(text):
    if len(text) !=12:
        return False
    for i in range(0,3):
        if not text[i].isdecimal:
            return False
    if text[3] !='-':
        return False
    for i in range(4,7):
        if not text[i].isdecimal:
            return False
    for i in range(8,12):
        if not text[i].isdecimal():
            return False
    return True
print('415-555-4242 は電話番号:')
print(phone('415-555-4242'))
print('moshimoshiは電話番号:')
print(phone('moshimoshi'))

message='明日は414-888-2627にお電話ください。オフィスは778-999-8768です'
for i in range(len(message)):
    chunk=message[i:i+12]
    if phone(chunk):
        print('電話番号が見つかりました:' +chunk)
print('完了')

 

これは正規表現に入る手前に出てくるコードなんですが、個人的に「おお!すげえ。」です。

これを使うと何万、何百万の文字の中から電話番号を見つけてきます。

あるルールに則って、パワフルなテクノロジーの力でイマジネーションの先端を捕まえるってのが、めちゃくちゃ好きです。

こういうテクノロジーはぼくらの生活の中でいろんな場所で動いています。

その裏側のからくりの一端を知って生きるのと、なにも意識しないで生きるのとでは世界はかなり違って見える。

 

プログラミングの楽しさは世界の裏側の仕組みを自分でも操れるようになること。

自分のイマジネーション(想像力)をテクノロジーで実現できること。

おもしろい。