[
自宅サーバーWebRing
┃
前
|ID=54
前後5表示
|
次
┃
乱移動
|
サイト一覧
]
このサイト内
書籍 DVD CD
Google(日本語)
Google(Web全体)
Google(イメージ)
Google(キャッシュ)
Yahoo! JAPAN
goo 英和
goo 和英
goo 国語
goo 新語
サイトマップ
リンク集
ダウンロード
フォーラム
Users Wiki
最新情報
TOP
»
UsersWiki
»
nao-pon
»
blog
» 2013-06-27 をテンプレートにして作成
|
一覧
検索
最新
ヘルプ
ページへ戻る
履歴
リンク元
印刷
正規表現処理エンジン PCRE の パータン分析スイッチの有効性について
をテンプレートにして作成
UsersWiki
:nao-pon/blog/2013-06-27 をテンプレートにして作成
開始行:
#navi
RIGHT:&rsslink(../);
#boxdate
* 正規表現処理エンジン PCRE の パータン分析スイッチの有効...
RIGHT:&tag(PHP,PCRE,プログラミング,正規表現);
[[イメージマネージャーを使用するにすると更新できなくなり...
今まで、特に確信がない正規表現パターンでも、なんとなく効...
*** テストスクリプト
xpWiki レンダラーの BB-Code に対応する正規表現をすべて確...
#code(php){{
$str = <<<EOD
(BB-Code を含んだ適当な文章 4,500字程度)
EOD;
$regs = array();
$regs[] = '/(?:\r\n|\r|\n)?\[code](?:\r\n|\r|\n)?(.*)(?:\...
$regs[] = '/(?:\r\n|\r|\n)?\[code](?:\r\n|\r|\n)?(.*)(?:\...
$regs[] = '/\[email](.+?)\[\/email]/i';
$regs[] = '/\[email](.+?)\[\/email]/iS';
$regs[] = '/\[url=([\'"]?)((?:ht|f)tp[s]?:\/\/[!~*\'();\/...
$regs[] = '/\[url=([\'"]?)((?:ht|f)tp[s]?:\/\/[!~*\'();\/...
$regs[] = '/\[url=([\'"]?)([!~*\'();\/?:\@&=+\$,%#_0-9a-z...
$regs[] = '/\[url=([\'"]?)([!~*\'();\/?:\@&=+\$,%#_0-9a-z...
$regs[] = '/\[siteurl=([\'"]?)\/?([!~*\'();?:\@&=+\$,%#_0...
$regs[] = '/\[siteurl=([\'"]?)\/?([!~*\'();?:\@&=+\$,%#_0...
$regs[] = '/(\[quote[^\]]*])(?:\r\n|\r|\n)(?![<>*|,#: \t+...
$regs[] = '/(\[quote[^\]]*])(?:\r\n|\r|\n)(?![<>*|,#: \t+...
$regs[] = '/(?:\r\n|\r|\n)*\[\/quote\]/';
$regs[] = '/(?:\r\n|\r|\n)*\[\/quote\]/S';
$regs[] = '/\[img\s+align=([\'"]?)(left|center|right)\1(?...
$regs[] = '/\[img\s+align=([\'"]?)(left|center|right)\1(?...
$regs[] = '/\[img(?:\s+title=([\'"])?((?(1)[^]]*|[^\]\s]*...
$regs[] = '/\[img(?:\s+title=([\'"])?((?(1)[^]]*|[^\]\s]*...
$regs[] = '/\[img\s+align=([\'"]?)(left|center|right)\1(?...
$regs[] = '/\[img\s+align=([\'"]?)(left|center|right)\1(?...
$regs[] = '/\[img(?:\s+title=([\'"])?((?(1)[^]]*|[^\]\s]*...
$regs[] = '/\[img(?:\s+title=([\'"])?((?(1)[^]]*|[^\]\s]*...
$regs[] = '/\[siteimg\s+align=([\'"]?)(left|center|right)...
$regs[] = '/\[siteimg\s+align=([\'"]?)(left|center|right)...
$regs[] = '/\[siteimg(?:\s+title=([\'"])?((?(1)[^]]*|[^\]...
$regs[] = '/\[siteimg(?:\s+title=([\'"])?((?(1)[^]]*|[^\]...
$regs[] = '/\x01(?:\=([^\]]+))?\](?:\r\n|[\r\n])((?:(?>[^...
$regs[] = '/\x01(?:\=([^\]]+))?\](?:\r\n|[\r\n])((?:(?>[^...
$_reg = 'test|hoge|fuga';
$regs[] = '/\[\/?(?:' . $_reg . ')(?:(?: |=)[^\]]+)?\]/';
$regs[] = '/\[\/?(?:' . $_reg . ')(?:(?: |=)[^\]]+)?\]/S';
$regs[] = '/\[(' . $_reg . ')(?:\b[^\]]+)?].+\[\/\\1\]/sU';
$regs[] = '/\[(' . $_reg . ')(?:\b[^\]]+)?].+\[\/\\1\]/sU...
$n = 0;
foreach($regs as $reg) {
$n++;
set_time_limit(30);
$start = microtime(true);
for ($i=0; $i < 10000; $i++) {
preg_match($reg, $str);
}
echo $reg;
echo ' : '. (microtime(true) - $start) . '<br>';
if ($n%2 === 0) echo str_repeat('-', 80).'<br>';
}
}}
----
*** 実行結果
#pre{{
/(?:\r\n|\r|\n)?\[code](?:\r\n|\r|\n)?(.*)(?:\r\n|\r|\n)?...
/(?:\r\n|\r|\n)?\[code](?:\r\n|\r|\n)?(.*)(?:\r\n|\r|\n)?...
---------------------------------------------------------...
/\[email](.+?)\[\/email]/i : 0.24048900604248
/\[email](.+?)\[\/email]/iS : 0.24318504333496
---------------------------------------------------------...
/\[url=(['"]?)((?:ht|f)tp[s]?:\/\/[!~*'();\/?:\@&=+\$,%#_...
/\[url=(['"]?)((?:ht|f)tp[s]?:\/\/[!~*'();\/?:\@&=+\$,%#_...
---------------------------------------------------------...
/\[url=(['"]?)([!~*'();\/?:\@&=+\$,%#_0-9a-zA-Z.-]+)\1\](...
/\[url=(['"]?)([!~*'();\/?:\@&=+\$,%#_0-9a-zA-Z.-]+)\1\](...
---------------------------------------------------------...
/\[siteurl=(['"]?)\/?([!~*'();?:\@&=+\$,%#_0-9a-zA-Z.-][!...
/\[siteurl=(['"]?)\/?([!~*'();?:\@&=+\$,%#_0-9a-zA-Z.-][!...
---------------------------------------------------------...
/(\[quote[^\]]*])(?:\r\n|\r|\n)(?![<>*|,#: \t+-])/ : 0.34...
/(\[quote[^\]]*])(?:\r\n|\r|\n)(?![<>*|,#: \t+-])/S : 0.3...
---------------------------------------------------------...
/(?:\r\n|\r|\n)*\[\/quote\]/ : 3.4016590118408
/(?:\r\n|\r|\n)*\[\/quote\]/S : 0.36038398742676
---------------------------------------------------------...
/\[img\s+align=(['"]?)(left|center|right)\1(?:\s+title=([...
/\[img\s+align=(['"]?)(left|center|right)\1(?:\s+title=([...
---------------------------------------------------------...
/\[img(?:\s+title=(['"])?((?(1)[^]]*|[^\]\s]*))(?(1)\1))?...
/\[img(?:\s+title=(['"])?((?(1)[^]]*|[^\]\s]*))(?(1)\1))?...
---------------------------------------------------------...
/\[img\s+align=(['"]?)(left|center|right)\1(?:\s+title=([...
/\[img\s+align=(['"]?)(left|center|right)\1(?:\s+title=([...
---------------------------------------------------------...
/\[img(?:\s+title=(['"])?((?(1)[^]]*|[^\]\s]*))(?(1)\1))?...
/\[img(?:\s+title=(['"])?((?(1)[^]]*|[^\]\s]*))(?(1)\1))?...
---------------------------------------------------------...
/\[siteimg\s+align=(['"]?)(left|center|right)\1(?:\s+titl...
/\[siteimg\s+align=(['"]?)(left|center|right)\1(?:\s+titl...
---------------------------------------------------------...
/\[siteimg(?:\s+title=(['"])?((?(1)[^]]*|[^\]\s]*))(?(1)\...
/\[siteimg(?:\s+title=(['"])?((?(1)[^]]*|[^\]\s]*))(?(1)\...
---------------------------------------------------------...
/\x01(?:\=([^\]]+))?\](?:\r\n|[\r\n])((?:(?>[^\x01\x02]+)...
/\x01(?:\=([^\]]+))?\](?:\r\n|[\r\n])((?:(?>[^\x01\x02]+)...
---------------------------------------------------------...
/\[\/?(?:test|hoge|fuga)(?:(?: |=)[^\]]+)?\]/ : 0.4222390...
/\[\/?(?:test|hoge|fuga)(?:(?: |=)[^\]]+)?\]/S : 0.423197...
---------------------------------------------------------...
/\[(test|hoge|fuga)(?:\b[^\]]+)?].+\[\/\1\]/sU : 0.380738...
/\[(test|hoge|fuga)(?:\b[^\]]+)?].+\[\/\1\]/sUS : 0.38188...
---------------------------------------------------------...
}}
ほとんどのパターンでまるで効果がありませんでした。
やはり、PHP マニュアル ([[PHP: 正規表現パターンに使用可能...
>
:S|
あるパターンを複数回使用する場合は、マッチングにかかる時...
'''&font(150%,Blue){&br;最初の文字が単一ではなく、 かつ固...
この通りですね。 :shy:
RIGHT:&font(90%){&page_comments;};
#navi
終了行:
#navi
RIGHT:&rsslink(../);
#boxdate
* 正規表現処理エンジン PCRE の パータン分析スイッチの有効...
RIGHT:&tag(PHP,PCRE,プログラミング,正規表現);
[[イメージマネージャーを使用するにすると更新できなくなり...
今まで、特に確信がない正規表現パターンでも、なんとなく効...
*** テストスクリプト
xpWiki レンダラーの BB-Code に対応する正規表現をすべて確...
#code(php){{
$str = <<<EOD
(BB-Code を含んだ適当な文章 4,500字程度)
EOD;
$regs = array();
$regs[] = '/(?:\r\n|\r|\n)?\[code](?:\r\n|\r|\n)?(.*)(?:\...
$regs[] = '/(?:\r\n|\r|\n)?\[code](?:\r\n|\r|\n)?(.*)(?:\...
$regs[] = '/\[email](.+?)\[\/email]/i';
$regs[] = '/\[email](.+?)\[\/email]/iS';
$regs[] = '/\[url=([\'"]?)((?:ht|f)tp[s]?:\/\/[!~*\'();\/...
$regs[] = '/\[url=([\'"]?)((?:ht|f)tp[s]?:\/\/[!~*\'();\/...
$regs[] = '/\[url=([\'"]?)([!~*\'();\/?:\@&=+\$,%#_0-9a-z...
$regs[] = '/\[url=([\'"]?)([!~*\'();\/?:\@&=+\$,%#_0-9a-z...
$regs[] = '/\[siteurl=([\'"]?)\/?([!~*\'();?:\@&=+\$,%#_0...
$regs[] = '/\[siteurl=([\'"]?)\/?([!~*\'();?:\@&=+\$,%#_0...
$regs[] = '/(\[quote[^\]]*])(?:\r\n|\r|\n)(?![<>*|,#: \t+...
$regs[] = '/(\[quote[^\]]*])(?:\r\n|\r|\n)(?![<>*|,#: \t+...
$regs[] = '/(?:\r\n|\r|\n)*\[\/quote\]/';
$regs[] = '/(?:\r\n|\r|\n)*\[\/quote\]/S';
$regs[] = '/\[img\s+align=([\'"]?)(left|center|right)\1(?...
$regs[] = '/\[img\s+align=([\'"]?)(left|center|right)\1(?...
$regs[] = '/\[img(?:\s+title=([\'"])?((?(1)[^]]*|[^\]\s]*...
$regs[] = '/\[img(?:\s+title=([\'"])?((?(1)[^]]*|[^\]\s]*...
$regs[] = '/\[img\s+align=([\'"]?)(left|center|right)\1(?...
$regs[] = '/\[img\s+align=([\'"]?)(left|center|right)\1(?...
$regs[] = '/\[img(?:\s+title=([\'"])?((?(1)[^]]*|[^\]\s]*...
$regs[] = '/\[img(?:\s+title=([\'"])?((?(1)[^]]*|[^\]\s]*...
$regs[] = '/\[siteimg\s+align=([\'"]?)(left|center|right)...
$regs[] = '/\[siteimg\s+align=([\'"]?)(left|center|right)...
$regs[] = '/\[siteimg(?:\s+title=([\'"])?((?(1)[^]]*|[^\]...
$regs[] = '/\[siteimg(?:\s+title=([\'"])?((?(1)[^]]*|[^\]...
$regs[] = '/\x01(?:\=([^\]]+))?\](?:\r\n|[\r\n])((?:(?>[^...
$regs[] = '/\x01(?:\=([^\]]+))?\](?:\r\n|[\r\n])((?:(?>[^...
$_reg = 'test|hoge|fuga';
$regs[] = '/\[\/?(?:' . $_reg . ')(?:(?: |=)[^\]]+)?\]/';
$regs[] = '/\[\/?(?:' . $_reg . ')(?:(?: |=)[^\]]+)?\]/S';
$regs[] = '/\[(' . $_reg . ')(?:\b[^\]]+)?].+\[\/\\1\]/sU';
$regs[] = '/\[(' . $_reg . ')(?:\b[^\]]+)?].+\[\/\\1\]/sU...
$n = 0;
foreach($regs as $reg) {
$n++;
set_time_limit(30);
$start = microtime(true);
for ($i=0; $i < 10000; $i++) {
preg_match($reg, $str);
}
echo $reg;
echo ' : '. (microtime(true) - $start) . '<br>';
if ($n%2 === 0) echo str_repeat('-', 80).'<br>';
}
}}
----
*** 実行結果
#pre{{
/(?:\r\n|\r|\n)?\[code](?:\r\n|\r|\n)?(.*)(?:\r\n|\r|\n)?...
/(?:\r\n|\r|\n)?\[code](?:\r\n|\r|\n)?(.*)(?:\r\n|\r|\n)?...
---------------------------------------------------------...
/\[email](.+?)\[\/email]/i : 0.24048900604248
/\[email](.+?)\[\/email]/iS : 0.24318504333496
---------------------------------------------------------...
/\[url=(['"]?)((?:ht|f)tp[s]?:\/\/[!~*'();\/?:\@&=+\$,%#_...
/\[url=(['"]?)((?:ht|f)tp[s]?:\/\/[!~*'();\/?:\@&=+\$,%#_...
---------------------------------------------------------...
/\[url=(['"]?)([!~*'();\/?:\@&=+\$,%#_0-9a-zA-Z.-]+)\1\](...
/\[url=(['"]?)([!~*'();\/?:\@&=+\$,%#_0-9a-zA-Z.-]+)\1\](...
---------------------------------------------------------...
/\[siteurl=(['"]?)\/?([!~*'();?:\@&=+\$,%#_0-9a-zA-Z.-][!...
/\[siteurl=(['"]?)\/?([!~*'();?:\@&=+\$,%#_0-9a-zA-Z.-][!...
---------------------------------------------------------...
/(\[quote[^\]]*])(?:\r\n|\r|\n)(?![<>*|,#: \t+-])/ : 0.34...
/(\[quote[^\]]*])(?:\r\n|\r|\n)(?![<>*|,#: \t+-])/S : 0.3...
---------------------------------------------------------...
/(?:\r\n|\r|\n)*\[\/quote\]/ : 3.4016590118408
/(?:\r\n|\r|\n)*\[\/quote\]/S : 0.36038398742676
---------------------------------------------------------...
/\[img\s+align=(['"]?)(left|center|right)\1(?:\s+title=([...
/\[img\s+align=(['"]?)(left|center|right)\1(?:\s+title=([...
---------------------------------------------------------...
/\[img(?:\s+title=(['"])?((?(1)[^]]*|[^\]\s]*))(?(1)\1))?...
/\[img(?:\s+title=(['"])?((?(1)[^]]*|[^\]\s]*))(?(1)\1))?...
---------------------------------------------------------...
/\[img\s+align=(['"]?)(left|center|right)\1(?:\s+title=([...
/\[img\s+align=(['"]?)(left|center|right)\1(?:\s+title=([...
---------------------------------------------------------...
/\[img(?:\s+title=(['"])?((?(1)[^]]*|[^\]\s]*))(?(1)\1))?...
/\[img(?:\s+title=(['"])?((?(1)[^]]*|[^\]\s]*))(?(1)\1))?...
---------------------------------------------------------...
/\[siteimg\s+align=(['"]?)(left|center|right)\1(?:\s+titl...
/\[siteimg\s+align=(['"]?)(left|center|right)\1(?:\s+titl...
---------------------------------------------------------...
/\[siteimg(?:\s+title=(['"])?((?(1)[^]]*|[^\]\s]*))(?(1)\...
/\[siteimg(?:\s+title=(['"])?((?(1)[^]]*|[^\]\s]*))(?(1)\...
---------------------------------------------------------...
/\x01(?:\=([^\]]+))?\](?:\r\n|[\r\n])((?:(?>[^\x01\x02]+)...
/\x01(?:\=([^\]]+))?\](?:\r\n|[\r\n])((?:(?>[^\x01\x02]+)...
---------------------------------------------------------...
/\[\/?(?:test|hoge|fuga)(?:(?: |=)[^\]]+)?\]/ : 0.4222390...
/\[\/?(?:test|hoge|fuga)(?:(?: |=)[^\]]+)?\]/S : 0.423197...
---------------------------------------------------------...
/\[(test|hoge|fuga)(?:\b[^\]]+)?].+\[\/\1\]/sU : 0.380738...
/\[(test|hoge|fuga)(?:\b[^\]]+)?].+\[\/\1\]/sUS : 0.38188...
---------------------------------------------------------...
}}
ほとんどのパターンでまるで効果がありませんでした。
やはり、PHP マニュアル ([[PHP: 正規表現パターンに使用可能...
>
:S|
あるパターンを複数回使用する場合は、マッチングにかかる時...
'''&font(150%,Blue){&br;最初の文字が単一ではなく、 かつ固...
この通りですね。 :shy:
RIGHT:&font(90%){&page_comments;};
#navi
ページ名:
ぺージ情報
ぺージ名 :
nao-pon/blog/2013-06-27
ページ別名 :
未設定
ページオーナー :
nao-pon
閲覧可
グループ :
すべての訪問者
ユーザー :
すべての訪問者
編集可
グループ :
なし
ユーザー :
ゲスト
Counter: 0, today: 0, yesterday: 0
メインメニュー
ホーム
価格比較 百貨
UsersWiki
新規ページ作成
最新ページ一覧
全ページ一覧
全コメント一覧
ヘルプ
xpwiki
お問い合わせ
ファイルマネージャー
ログイン
ユーザー名:
パスワード:
パスワード紛失
|
新規登録
最近の更新
最新の20件
2023-05-14
nao-pon
/
gmap + gmap_street + gmap_insertmarker
nao-pon
/
googlemaps2
2023-03-22
PublicBlog
/
The Importance of QFP in PCB
2023-02-28
FrontPage
/
PCB terminology you must know
2023-01-20
nao-pon
/
blog
/
ESP8266 を壊してしまいました しかも続けて2回も
2022-09-22
nao-pon
/
blog
/
ESP32 + ESPHome の Bluetooth Proxy で SwitchBot Mater
2022-08-26
nao-pon
/
blog
/
独自ビルドの Tasmota を 12.1.1 へ
2022-08-19
nao-pon
/
blog
/
Zigbee + ZHA のメモ書き
2022-01-17
nao-pon
/
blog
/
HomeAssistant 統合の Tasmota-IRHVAC に貢献
2021-08-03
nao-pon
/
ファイル置き場
/
スペースサワダ
2021-07-01
nao-pon
/
blog
/
HomeAssistant 統合の Tasmota-IRHVAC の不具合修正
2021-06-20
nao-pon
/
blog
/
Tasmota を 9.4.0 から 9.5.0 へアップデート
2021-06-15
nao-pon
/
blog
/
ミンティア[MINTIA] で WiFi 6ボタンスイッチを作った
2021-04-27
PublicBlog
2021-03-17
nao-pon
/
blog
/
SwitchBot 温湿度計を ESP32 でモニタリング
2021-03-13
nao-pon
/
blog
/
東芝エアコンのエントリーモデルもWiFi化
2021-02-23
risoulaser
2021-02-18
nao-pon
/
blog
/
Panasonic (ナショナル) エアコンの 2008 年モデルも WiFi 化
2021-02-15
nao-pon
/
blog
/
Tasmota で HA 端子(JEM-A) 連携
2021-02-07
nao-pon
/
blog
/
Tasmota で三菱エアコンを完全コントロール
オンライン状況
350 人のユーザが現在オンラインです。 (4 人のユーザが UsersWiki を参照しています。)
登録ユーザ: 0
ゲスト: 350
もっと...
サイト情報