開発環境
- OS X Lion - Apple(OS)
- Apache (Web Server)
- PHP (サーバーサイドプログラミング言語、スクリプト言語)
- BBEdit - Bare Bones Software, Inc.(Text Editor)
『初めてのPHP5』 (David Sklar 著、 桑村 潤 翻訳、 廣川 類 翻訳、 オライリー・ジャパン、2005年、ISBN978-4-87311-257-2)の付録B(正規表現の基本)B.8(演習問題)1を解いてみる。
1.
HTML、PHPのソースコード(BBEdit)
<?php $numbers = array( "(718) 498-1043", "(718) 498 1043", "718 498 1043", "718 498-1043", "718-498-1043", "718.498.1043", "php", 1234567890, 12345); foreach($numbers as $key => $value){ if(preg_match("/^\(?\d{3}\)?[- \.]?\d{3}[- \.]?\d{4}$/", $value)){ print "Matched!: " ; } else { print "No match: "; } print $value . "<br />"; } ?>
ちなみにJavaScriptの場合。
コード(BBEdit)
var numbers = ["(718) 498-1043", "(718) 498 1043", "718 498 1043", "718 498-1043", "718-498-1043", "718.498.1043", "php", 1234567890, 12345]; var result = "" for(var i = 0; i < numbers.length; i++){ if(/^\(?\d{3}\)?[- \.]?\d{3}[- \.]?\d{4}$/.test(numbers[i])){ result += "Matched: "; } else { result += "No match: " } result += numbers[i] + "\n"; } $('#pre0').text(result);
pythonの場合。
sample.py
コード(BBEdit)
#!/usr/bin/env python3.3 #-*- coding: utf-8 -*- import re numbers = ["(718) 498-1043", "(718) 498 1043", "718 498 1043", "718 498-1043", "718-498-1043", "718.498.1043", "php", 1234567890, 12345]; for x in numbers: if type(x) != str: x = str(x) if re.search(r"^\(?\d{3}\)?[- \.]?\d{3}[- \.]?\d{4}$", x): print("Matched: {0}".format(x)) else: print("No match: {0}".format(x))
入出力結果(Terminal)
$ ./sample.py Matched: (718) 498-1043 Matched: (718) 498 1043 Matched: 718 498 1043 Matched: 718 498-1043 Matched: 718-498-1043 Matched: 718.498.1043 No match: php Matched: 1234567890 No match: 12345 $
0 コメント:
コメントを投稿