開発環境
- 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 コメント:
コメントを投稿