#全て全角ASCIIか?
#Pythonの正規表現で、渡された文字列が全て全角ASCIIかチェックします。(UTF-8向け)
#Python 正規表現 全角ASCII UTF8
regexp = re.compile(r'^(?:\xEF\xBC[\x81-\xBF]|\xEF\xBD[\x80-\xA0])+$')
result = regexp.search("ABCDEFGHIJK1234567890!#$")
if result != None :
print(u"すべてが全角ASCIIである".encode('shift_jis'))
else :
print(u"すべてが全角ASCIIではない".encode('shift_jis'))
#↓
#"すべて全角ASCIIである"
2008年05月31日
正規表現で、文字列は全て全角ASCIIか?のチェック(Python編)
2008年05月30日
正規表現で、文字列は全て全角ASCIIか?のチェック(Perl編)
#全て全角ASCIIか?
#Perlの正規表現で、渡された文字列が全て全角ASCIIかチェックします。(UTF-8向け)
#Perl 正規表現 全角ASCII UTF8
$str = "ABCDEFGHIJK1234567890!#$";
if ( $str =~ /^(?:\xEF\xBC[\x81-\xBF]|\xEF\xBD[\x80-\xA0])+$/ ) {
print encode('shift-jis', decode('utf-8', "すべてが全角ASCIIである\n"));
} else {
print encode('shift-jis', decode('utf-8', "すべてが全角ASCIIではない\n"));
}
#↓
#"すべて全角ASCIIである"
2008年05月29日
正規表現で、文字列は全て全角ASCIIか?のチェック(PHP編)
//PHPの正規表現で、渡された文字列が全て全角ASCIIかチェックします。(UTF-8向け)
//PHP 正規表現 全角ASCII UTF8
$str = "ABCDEFGHIJK1234567890!#$";
if (preg_match("/^(?:\xEF\xBC[\x81-\xBF]|\xEF\xBD[\x80-\xA0])+$/", $str)) {
echo "すべて全角ASCIIである"."<br>\n";
} else {
echo "全角ASCIIではない文字がある"."<br>\n";
}
//↓
//"すべて全角ASCIIである"
2008年05月28日
煉獄
ふと気づくと、
私の目の前に、私がいました。
その私が言いました。
「人間には愛という執着があり、
その執着ゆえに憎悪が生まれる。
生まれてしまった憎悪は行き場を探して彷徨い、
また新たな憎悪を生む、
憎悪を消す術を知らない人間の、この世界を
煉獄と言わずしてなんと言おうか?」
私の目の前に、私がいました。
その私が言いました。
「人間には愛という執着があり、
その執着ゆえに憎悪が生まれる。
生まれてしまった憎悪は行き場を探して彷徨い、
また新たな憎悪を生む、
憎悪を消す術を知らない人間の、この世界を
煉獄と言わずしてなんと言おうか?」
2008年05月27日
正規表現で、文字列は全て半角英数字か?のチェック(C++編)
「C++ Boostのインストール(Windows編)」
http://programmer-toy-box.sblo.jp/article/14267315.html
もしくは、
「C++ Boostのインストール(Windows + VisualC++ 2008編)」
http://programmer-toy-box.sblo.jp/article/14873765.html
でBoostがインストールされていることが前提です。
SJIS対応です。
http://programmer-toy-box.sblo.jp/article/14267315.html
もしくは、
「C++ Boostのインストール(Windows + VisualC++ 2008編)」
http://programmer-toy-box.sblo.jp/article/14873765.html
でBoostがインストールされていることが前提です。
SJIS対応です。
#include <iostream>
#include <string>
#include <boost/regex.hpp>
using namespace std;
int main() {
boost::regex r5("^[0-9A-Za-z]+$");
boost::smatch m5;
string str5 = "abcdefghijklmnopqrstuvwxyz0123456789";
if( boost::regex_search(str5, m5, r5) ) {
cout << "すべて半角英数字である" << endl;
} else {
cout << "半角英数字でない文字がある" << endl;
}
return 0;
}
2008年05月26日
正規表現で、文字列は全て半角カタカナか?のチェック(なでしこ編)
「アイウエオワイウエオン」を「^[ア-ン゙゚]+$」で正規表現マッチ
それで条件分岐
空ならば
「半角カタカナではない文字がある」と表示
違えば
「すべてが半角カタカナである」と表示
2008年05月25日
2008年05月24日
「やさしさ紙芝居」
水谷豊さんの「やさしさ紙芝居」を久しぶりに聴きました。
いい歌ですよね。
水谷豊さんは、軽妙で、飄々としていて、私の好きな俳優の一人です。最近、バラエティにちょいちょいと出演してくれて嬉しかったりします。
昔、会社の後輩達とカラオケに行った時に「やさしさ紙芝居」を歌ったら、キョトンとされてジェネレーションギャップに少なからずショックを受けたことを思い出しました。
いい歌ですよね。

水谷豊さんは、軽妙で、飄々としていて、私の好きな俳優の一人です。最近、バラエティにちょいちょいと出演してくれて嬉しかったりします。
昔、会社の後輩達とカラオケに行った時に「やさしさ紙芝居」を歌ったら、キョトンとされてジェネレーションギャップに少なからずショックを受けたことを思い出しました。
2008年05月23日
正規表現で、文字列は全て半角カタカナか?のチェック(C++編)
「C++ Boostのインストール(Windows編)」
http://programmer-toy-box.sblo.jp/article/14267315.html
もしくは、
「C++ Boostのインストール(Windows + VisualC++ 2008編)」
http://programmer-toy-box.sblo.jp/article/14873765.html
でBoostがインストールされていることが前提です。
SJIS対応です。
http://programmer-toy-box.sblo.jp/article/14267315.html
もしくは、
「C++ Boostのインストール(Windows + VisualC++ 2008編)」
http://programmer-toy-box.sblo.jp/article/14873765.html
でBoostがインストールされていることが前提です。
SJIS対応です。
#include <iostream>
#include <string>
#include <boost/regex.hpp>
using namespace std;
int main() {
boost::regex r4("^(?:[\xA6-\xDF])+$");
boost::smatch m4;
string str4 = "ハンカクカタカナデアル";
if( boost::regex_search(str4, m4, r4) ) {
cout << "すべてが半角カタカナである" << endl;
} else {
cout << "半角カタカナではない文字がある" << endl;
}
return 0;
}
2008年05月22日
正規表現で、文字列は全て半角カタカナか?のチェック(Java編)
/**
* 文字列が「半角カタカナ」のみか?
* 参考:
* http://www.unicode.org/charts/PDF/U3040.pdf
*/
private static final String P_HALF_KATAKANA_ONLY = "^[\\uFF65-\\uFF9F]+$";
/**
* 全て半角カタカナか?
* @param str チェック対象文字列
* @return はい:true いいえ:false
*/
public static boolean isHalfKatakanaOnly(String str) {
return str.matches(P_HALF_KATAKANA_ONLY);
}
2008年05月21日
ことの葉ひらひら その22
「大切な人を失うことを何度経験しても、その悲しみに慣れることはない」
〜台北猫々〜
〜台北猫々〜
2008年05月20日
今日はすごい風でした。
午前中は強風がうなっていました。
で、傘が半壊してしまいました。
なんか出勤の道にすごい強風ポイントがあって、そこが鬼門なのですよね。結構、壊されます。
形状記憶合金のように、復活する傘ができるといいなぁ、などと思いつつ、出勤しました。
で、傘が半壊してしまいました。
なんか出勤の道にすごい強風ポイントがあって、そこが鬼門なのですよね。結構、壊されます。
形状記憶合金のように、復活する傘ができるといいなぁ、などと思いつつ、出勤しました。

2008年05月19日
今日は代休的有給です。
先週の土曜日は一日仕事だったので、今日は自主的に有給という名の代休を取らせてもらいました。
で、久しぶりに株のデイトレードをして約2万円の儲けを出せました。儲けは出せたものの、やっぱり難しいですね。私のような優柔不断人間にとっては、売買タイミングがなかなか。。。(^^;
で、その後は近くの温泉に行き、洞窟風呂で癒されてきました。
で、久しぶりに株のデイトレードをして約2万円の儲けを出せました。儲けは出せたものの、やっぱり難しいですね。私のような優柔不断人間にとっては、売買タイミングがなかなか。。。(^^;
で、その後は近くの温泉に行き、洞窟風呂で癒されてきました。
2008年05月18日
今日は天気がよかったです
今日は天気が良かったので、ガーデニング(プランター1個、野菜ばかり)をやりました。何かを育てるというのは良いですね。
なんか、ゆったりとした一日でした
なんか、ゆったりとした一日でした

2008年05月17日
正規表現で数値を3桁毎のカンマ区切り形式に変換
$buf = "12345678901234567";
$res = preg_replace("/(\d)(?=(\d{3})+(?!\d))/", '\1,', $buf);
print($res);
//↓
//12,345,678,901,234,567
//になります。
//参照:
//http://mono.kmc.gr.jp/~oxy/w/?Regexp%20Lookahead
$res = preg_replace("/(\d)(?=(\d{3})+(?!\d))/", '\1,', $buf);
print($res);
//↓
//12,345,678,901,234,567
//になります。
//参照:
//http://mono.kmc.gr.jp/~oxy/w/?Regexp%20Lookahead
2008年05月16日
検索に引っかからないです。
以前は、一日あたり100件以上はGoogle検索でヒットしていたのに、今は10件程度しかヒットしていません。しばらくすれば元に戻るかな?と思っていたのですが、駄目です。もう、駄目なんでしょうか?
2008年05月15日
正規表現で、文字列は全て全角カタカナか?のチェック(C++編)
「C++ Boostのインストール(Windows編)」
http://programmer-toy-box.sblo.jp/article/14267315.html
もしくは、
「C++ Boostのインストール(Windows + VisualC++ 2008編)」
http://programmer-toy-box.sblo.jp/article/14873765.html
でBoostがインストールされていることが前提です。
SJIS対応です。
http://programmer-toy-box.sblo.jp/article/14267315.html
もしくは、
「C++ Boostのインストール(Windows + VisualC++ 2008編)」
http://programmer-toy-box.sblo.jp/article/14873765.html
でBoostがインストールされていることが前提です。
SJIS対応です。
#include <iostream>
#include <string>
#include <boost/regex.hpp>
using namespace std;
int main() {
boost::regex r3("^(?:\x83[\x40-\x96])+$");
boost::smatch m3;
string str3 = "ゼンカクカタカナデアル";
if( boost::regex_search(str3, m3, r3) ) {
cout << "すべてが全角カタカナである" << endl;
} else {
cout << "全角カタカナではない文字がある" << endl;
}
return 0;
}
2008年05月13日
正規表現で、文字列は全て平仮名か?のチェック(C++編)
「C++ Boostのインストール(Windows編)」もしくは、
「C++ Boostのインストール(Windows + VisualC++ 2008編)」でBoostがインストールされていることが前提です。
SJIS対応です。
「C++ Boostのインストール(Windows + VisualC++ 2008編)」でBoostがインストールされていることが前提です。
SJIS対応です。
#include <iostream>
#include <string>
#include <boost/regex.hpp>
using namespace std;
int main() {
boost::regex r2("^(?:\x82[\x9F-\xF1])+$");
boost::smatch m2;
string str2 = "ひらがなである";
if( boost::regex_search(str2, m2, r2) ) {
cout << "すべてが平仮名である" << endl;
} else {
cout << "平仮名ではない文字がある" << endl;
}
return 0;
}
2008年05月12日
C++ Boostのインストール(Windows + VisualC++ 2008編)
コードなにがしにも投稿していますが、こちらにもメモ。
Boostのインストール方法のWindows + VisualC++2008の場合(ソースコンパイル版)です。
2008.05.10現在、VisualC++ 2008(9.0)用のBoostのGUIインストーラーは提供されていないので、ソースを入手して、コンパイル・インストールします。
2009.03.03 バイナリインストーラーが配布されていました。
「C++ Boostのインストール(Windows + VisualC++ 2008編)〜バイナリインストール」
【環境】
・WindowsXP SP2
・VisualC++ 2008 ExpressEdition
1.ソースの入手
Boost C++ Libraries
http://sourceforge.net/project/showfiles.php?group_id=7586
からboost_1_35_0.zip(2008.05.10現在の最新)をダウンロードします。
2.ビルドツールの入手
Boost C++ Libraries
http://sourceforge.net/project/showfiles.php?group_id=7586
からboost-jam-3.1.16-1-ntx86.zip(2008.05.10現在の最新)をダウンロードします。
3.作業フォルダへの解凍/展開
本稿では、C:\usr\local\boost_1_35_0を作業フォルダとします。1.と2.を解凍したものを、作業フォルダにコピーします。

結果として、作業フォルダは↑のようなファイル配置になっているはずです。
4.ソースのビルド(コンパイル)
DOSコマンドプロンプトを起動して、cdコマンドで作業フォルダに移動して、↓のコマンドを実行します。(画面の都合で折り返していますが、実際は1行です。)
bjam.exe --build-type=complete --toolset=msvc --prefix="C:\Program Files\Microsoft Visual Studio 9.0\VC" install

ビルドは相当時間がかかる(Intel Core2 Duoで数時間)ので、覚悟して下さい(笑

ビルド完了です。インクルードファイルは、C:\Program Files\Microsoft Visual Studio 9.0\VC\include\boost-1_35に展開され、ライブラリ・DLLファイルは、C:\Program Files\Microsoft Visual Studio 9.0\VC\libに展開されます。
5.VisualC++ 2008の設定

「ツール」→「オプション」→「プロジェクトおよびソリューション」→「VC++ディレクトリ」→ 「ディレクトリを表示するプロジェクト」→「インクルード ファイル」に C:\Program Files\Microsoft Visual Studio 9.0\VC\include\boost-1_35を加える。
完了です。
Boostのインストール方法のWindows + VisualC++2008の場合(ソースコンパイル版)です。
2008.05.10現在、VisualC++ 2008(9.0)用のBoostのGUIインストーラーは提供されていないので、ソースを入手して、コンパイル・インストールします。
2009.03.03 バイナリインストーラーが配布されていました。
「C++ Boostのインストール(Windows + VisualC++ 2008編)〜バイナリインストール」
【環境】
・WindowsXP SP2
・VisualC++ 2008 ExpressEdition
1.ソースの入手
Boost C++ Libraries
http://sourceforge.net/project/showfiles.php?group_id=7586
からboost_1_35_0.zip(2008.05.10現在の最新)をダウンロードします。
2.ビルドツールの入手
Boost C++ Libraries
http://sourceforge.net/project/showfiles.php?group_id=7586
からboost-jam-3.1.16-1-ntx86.zip(2008.05.10現在の最新)をダウンロードします。
3.作業フォルダへの解凍/展開
本稿では、C:\usr\local\boost_1_35_0を作業フォルダとします。1.と2.を解凍したものを、作業フォルダにコピーします。

結果として、作業フォルダは↑のようなファイル配置になっているはずです。
4.ソースのビルド(コンパイル)
DOSコマンドプロンプトを起動して、cdコマンドで作業フォルダに移動して、↓のコマンドを実行します。(画面の都合で折り返していますが、実際は1行です。)
bjam.exe --build-type=complete --toolset=msvc --prefix="C:\Program Files\Microsoft Visual Studio 9.0\VC" install

ビルドは相当時間がかかる(Intel Core2 Duoで数時間)ので、覚悟して下さい(笑

ビルド完了です。インクルードファイルは、C:\Program Files\Microsoft Visual Studio 9.0\VC\include\boost-1_35に展開され、ライブラリ・DLLファイルは、C:\Program Files\Microsoft Visual Studio 9.0\VC\libに展開されます。
5.VisualC++ 2008の設定

「ツール」→「オプション」→「プロジェクトおよびソリューション」→「VC++ディレクトリ」→ 「ディレクトリを表示するプロジェクト」→「インクルード ファイル」に C:\Program Files\Microsoft Visual Studio 9.0\VC\include\boost-1_35を加える。
完了です。
2008年05月11日
正規表現で、文字列は全て半角カタカナか?のチェック(Python編)
UTF-8対応です。
#全て半角カタカナか?
#Pythonの正規表現で、渡された文字列が全て半角カタカナかチェックします。(UTF-8向け)
#Python 正規表現 半角カタカナ UTF8
regexp = re.compile(r'^(?:\xEF\xBD[\xA1-\xBF]|\xEF\xBE[\x80-\x9F])+$')
result = regexp.search("。アイウエオカキクケコサシスセソタチツテトナニヌネノハイフヘホマミムメモラリルレロヤユヨワン゚")
if result != None :
print(u"すべてが半角カタカナである".encode('shift_jis'))
else :
print(u"すべてが半角カタカナではない".encode('shift_jis'))
#↓
#"すべて半角カタカナである"
※標準出力をUnicode→SJISに変換しているのは、開発環境がWindows+Eclipseの都合です。Windows+Eclipseのコンソールは、SJISエンコーディングオンリーなので。