[過去ログ] 正規表現道場 Part2 (466レス)
1-

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
128
(1): 124 2014/02/06(木)18:00 ID:???.net AAS
たくさんレスいただきましてありがとうございます
お礼が遅れまして申し訳ありません

127様の \.([a-z\d]{1,4}"IMG\b) で無事検索できることができました
しかし置き換えでは マッチした文字列が ..photo.$1 に置き換わるだけで $1にマッチした語句が適応されません

検索結果
○○○○○○.abc" IMG が ○○○○○○..photo.$1 となります
希望では
○○○○○○.photo.abc" IMG となることです(単純に .拡張子 前に .photo を入れたい)

先の書き込みでの訂正がありました 申し訳ありません
検索したい文字列には " と IMG の間に半角スペースがありました

半角があっても上手く検索にひっかっかっていますが
上手く置き換えができないのはこの半角が原因なのでしょうか?

引き続きご指導いただければ幸いです よろしくお願いいたします
129
(1): ◆QzqhRqBYxktP 2014/02/06(木)20:27 ID:???.net AAS
>>128
ごめんなさい、こちらにも見落としがいくつかありました。
( Devasにはメジャーな正規表現エンジンが使われていると考えて作りましたが違ったようです )

・通常版 (上行=検索、下行=置換)
\.[a-zA-Z\d]{1,4}" ?IMG\b
.photo\0

・拡張子を小文字に変換する版 (例 .JPG → .jpg )
\.([a-zA-Z\d]{1,4})(" ?IMG\b)
.photo.\L\1\E\2

・ 「"」 と IMG の間のスペースがあっても無くてもスペース1個にする版
\.([a-zA-Z\d]{1,4})" ?IMG\b
.photo.\L\1\E" IMG

# \L と \E を削除すれば拡張子の小文字変換はしなくなります。
# 本当は .photo.photo.jpg のような複数回置換による重複を防ぎたかったんですが
# この正規表現エンジンでは無理なようです。(>_<)
130: 2014/02/06(木)22:22 ID:???.net AAS
>>129
度々のレスありがとうございます

正規表現エンジンにもいろいろなものがあるとは知りませんでした
お手数をおかけいたしまして申し訳ありません

いくつものパターンを示してくださいまして 
重ねて感謝いたします

通常版にて理想の変換ができました
今回教えて頂いたような知識を深めて、もっと便利にPCを使えるようになりたいと思います

勉強になりました ありがとうございます m(_ _)m
131: 2014/02/09(日)02:41 ID:???.net AAS
質問させてください。
phpのpreg_match関数でwebページから文字列を抽出したいと考えています。
以下を使用して抽出していますが、改行が含まれると抽出ができませんでした。

$text = '/value="(.*?)" id="latest"/';
preg_match($text, $source, $matches);
$word = $matches[1];

色々調べて$textを以下のようにしてみましたが、うまくいきませんでした。
$text = '/value="(.*?)" id="latest"/s';
$text = '/value="([\s\S]*?)" id="latest"/';
$text = '/value="((\n|.)*?)" id="latest"/';

何故うまくいかないのかよくわかりません。
なにかアイデアはありませんでしょうか?
132: 2014/02/09(日)08:07 ID:J9pikab5.net(1/2) AAS
俺なら
/value="([^"]*)"\s+id="latest"/
133: ◆QzqhRqBYxktP 2014/02/09(日)17:20 ID:???.net AAS
× ' '
○ " "

というオチ?PHPは触らないから分からない。
134: 2014/02/09(日)17:39 ID:J9pikab5.net(2/2) AAS
PHPなんか触らないから分からないけど両端のすらすらが余計とかなんかね
135: ◆QzqhRqBYxktP 2014/02/09(日)18:09 ID:???.net AAS
ごめんなさい、PHPの解説サイト見たら ' ' でOKでした。
136: 2014/02/11(火)10:03 ID:???.net AAS
PHPスレで聞いたほうが早いかも。原因が改行以外にある可能性も十分あるので
動かないサンプルコードをアップして見てもらえば確実に原因教えてもらえると思う。
137: 2014/02/11(火)13:41 ID:???.net AAS
↑$source に入るHTMLファイルも見ないと原因が分からない可能性アリ。
138: ◆QzqhRqBYxktP 2014/02/13(木)23:18 ID:???.net AAS
再帰と (?( ) yes|no) の組み合わせが楽しすぎる。もしかしたら宝の山かも。
マトリョーシカの中にダルマを入れられる感じ。
139: 2014/02/15(土)18:56 ID:???.net AAS
正規表現メモ
外部リンク[html]:www.kt.rim.or.jp
「調整中」

気付いてもらえたのかそうでないのかいまいち分からんす。
このサイトはあんまアテにしないほうが良さそうだ。
140: ◆QzqhRqBYxktP 2014/02/16(日)14:59 ID:???.net AAS
>>125 の疑問点

\K が分岐の先頭にあることで処理速度に遅れが出るかどうか調べる。
また、\K を使わない書き方とどちらが早いか調べる。
141: ◆QzqhRqBYxktP 2014/02/16(日)15:40 ID:???.net AAS
比較対象追加 ( >>125 ) | (?=ABC) \K ABC
142
(1): ◆QzqhRqBYxktP 2014/02/16(日)20:56 ID:???.net AAS
( >>125 ) | (?=ABC) \K ...

Perl6 正規表現 I
外部リンク[html]:dl.dropboxusercontent.com
143: ◆QzqhRqBYxktP 2014/02/17(月)00:27 ID:???.net AAS
Perl6::Overview::Rule
外部リンク[pod]:search.cpan.org

[foo|bar]+

Perl6ではこれが正しい書き方になるらしい。初心者がハマりそう・・罠的な意味で。

先読み、戻り読みは書きにくくなった感が否めない。
文字クラスも加算、減算をしないときでも <> で囲う必要があるのはめんどくさい。

が、新しいオモチャとしては十分楽しめそう。ついでに英語も覚えてしまおう。
144
(1): ◆QzqhRqBYxktP 2014/02/22(土)00:25 ID:???.net AAS
S05
外部リンク[html]:feather.perl6.nl
> Last Modified: 11 Feb 2014, Version: 174

A05
外部リンク[pod]:search.cpan.org
> Last Modified: 18 May 2006, Number: 5, Version: 7

perl6ではもはや正規表現ではないという意味を込めて 「regex」 と呼んでるらしい。
perl5の正規表現にあった 「ゴチャゴチャ感」 が綺麗に一掃されてる感がある。

:ratchet があるのは最高だなぁ。
145
(1): 2014/03/01(土)19:39 ID:n8n41uDi.net(1/2) AAS
2chスレ:applism
2chスレ:applism
この書込の方を正規表現でNGにしたいと思っています。

条件は
最初の行とは限らないが、「・」で初める行がある。何文字かの後、改行
その次の行は空の行
この2セットを正規表現で表すにはどうすればいいでしょうか?

.*?・.*?\r\n\r\n
としてみましたがダメでした。
146
(2): ◆QzqhRqBYxktP 2014/03/01(土)20:13 ID:???.net AAS
>>145
2chブラウザ用でいいのかな?処理速度重視で作った。

(?:^|<br>)(?>\s*)・(?>[^<]*(?:(?!<br>).[^<]*)*)<br>(?>\s*)<br>
147: 2014/03/01(土)20:45 ID:n8n41uDi.net(2/2) AAS
>>146
素敵!
神!
すっきりしました!
テキストじゃなくhtmlに対して正規表現だったのですね、勉強になりました。
ありがとうございました!
148: 2014/03/02(日)02:32 ID:2i/vkXtz.net(1) AAS
htmlに対してとかじゃなくログに合わせろと
149: ◆QzqhRqBYxktP 2014/03/04(火)19:52 ID:???.net AAS
(>>146)
(?:^|<br>) は分岐のバックトラックが残るから (?><br>|\A) としたほうが良さそう。

この2つは動作が完全なイコールではないので注意が必要、文頭が <br> だった場合に
絶対に \A がマッチ出来なくなるため。これが問題になることはほとんど無いだろうけど。
150: 2014/03/05(水)08:18 ID:???.net AAS
(>>144)
S05
外部リンク[html]:perlcabal.org
>Last Modified: 27 Feb 2014

Jeffrey Friedl
外部リンク:regex.info

Jeffrey Friedl - 第3版のコード ※ CGIなので直リンは避けたほうが良い。
regex.info/listing.cgi?ed=3&p=all

第2刷に対する正誤表 - 詳説 正規表現 第3版
外部リンク:www.oreilly.co.jp

Google Books 詳説 正規表現 ※ 立ち読み可能
外部リンク:www.google.co.jp
151: 2014/03/13(木)06:24 ID:???.net AAS
ascii抜粋

!"#$%&amp;'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~
152: 2014/03/17(月)17:00 ID:???.net AAS
>>142
>Perl6 正規表現 I

ここのサイト主、先読みを理解出来てないな・・。beforeとafterも逆だし。
153: 2014/03/21(金)12:20 ID:???.net AAS
tes
154: 2014/03/22(土)00:49 ID:???.net AAS
windowsXP ショートカットのパス

---------
C:\WINDOWS\system32\cmd.exe /k C:\test.pl6
---------

/k は実行後にウインドウを閉じないオプション。
拡張子 pl6 を perl6.exe に関連付けしておく。
test.pl6 にperl6のテストコードを書いて実験する。
155: 2014/03/23(日)15:15 ID:???.net AAS
#!/usr/bin/perl6
my $str;
$str := "AAABBBCCC";
say $str.trans( 'A'=>'a', 'B'=>'b', 'C'=>'c' );
say "\n"~$str;

---結果---
aaabbbccc

AAABBBCCC
156
(2): 2014/03/26(水)20:28 ID:???.net AAS
### winXP で文字コードの 『et_EE.ISO8859-1』 を使えるようにする手順

!!! 試すときは仮想マシンを使うこと。環境が壊れて文字化けだらけになるため。 !!!

1、「コントロールパネル」 → 「地域と言語のオプション」
2、「日本語」 や 「日本」 と設定されている所を全て 「エストニア」 に設定する。
3、PC再起動

=> perl から et_EE.ISO8859-1 が使用可能になる。

順番が s z t u に変わったことを確認。ただ、 [a-z] で t 以降もマッチするのは変わらず。

[FreeBSD] - 2005/9/3 ( => FreeBSD4.10? )
外部リンク[html]:lists.freebsd.org
外部リンク[html]:lists.freebsd.org

正規表現 Part11
2chスレ:tech
157: 2014/03/26(水)22:02 ID:???.net AAS
FreeBSD - 2005/9/5
外部リンク[html]:lists.freebsd.org
外部リンク[html]:lists.freebsd.org

正規表現 Part11
2chスレ:tech

[[ winXPで et_EE.ISO8859-1 を使う ]]

1、「コントロールパネル」 => 「地域と言語のオプション」
2、「日本」 「日本語」 を全て「エストニア」 に変更。
3、PC再起動

perlで s z t u の順になるのを確認。しかし [a-z] が t u 以降にもマッチするのは変わらなかった。
=> 順番が変わることによるトラブルを避けるために対策されている?

※ これをやると環境の一部がエストニア語で上書きされ日本語に戻せなくなるので
試すなら 「VM ware」 や 「Virtual PC」 等の仮想マシンで試しましょう。

2005/9/5 に問題報告がされているのでそれ以前にリリースされたFreeBSDを使って試せば
完全に再現出来る可能性大。そして 4.11で再現出来なくなっていれば対策が取られたということになる。
158: 2014/03/30(日)04:03 ID:???.net AAS
--------c:\test.pl-----------
use locale;
print +(sort grep /[a-z]/i, map { chr } 0..255), "\n";
--------c:\test.pl-----------

C:\>perl test.pl
aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsSzZtTuUvVwWxXyY

C:\>perl -v
This is perl 5, version 16, subversion 3 (v5.16.3) built for MSWin32-x86-multi-thread

-----------------------------------
↓これを使わなくても順番が変わった。
use POSIX qw(setlocale LC_ALL);
setlocale(LC_ALL, "et_EE.ISO8859-1");
コンパネで「エストニア」と指定しただけで「et_EE.ISO8859-1」は未指定の状態。
-----------------------------------
/[a-z]/i を /\w/ に変えると英字以外の文字も英字の間に
挟まっていることが確認出来る。
159: 2014/03/30(日)04:24 ID:???.net AAS
--------c:\test.pl-----------
use locale; # これが無いと順番が変わらない
use POSIX qw(setlocale LC_ALL); # コメントアウトしても変化なし
setlocale(LC_ALL, "et_EE.ISO8859-1"); # コメントアウトしても変化なし

my $abc;
$abc = "STU";
$abc =~ s/[A-Z]/hit/g;
print $abc."\n";
--------c:\test.pl-----------

[結果] hithithit
順番が変わっていれば S にしかマッチしないはずだが3文字すべてに
マッチしている。

LC_ALL を LC_CTYPE や、 LANG などに変えたり、test.plを保存するときの
文字コードをutf-8からshift_jisに変えたりしても結果変わらず。

XPsp3+perl5.16.3の環境で S だけにマッチさせる手段は無いと思われる。
160
(1): 2014/03/30(日)05:25 ID:???.net AAS
>>156
「辞書順」はロケールに依存するが「文字コード順」は文字コードに依存する、んじゃね?
文字集合の範囲指定が文字コード順と定義されているなら、
いくらロケール切り替えても文字コード切り替えない限り無意味だろう。

で、文字集合の範囲指定ってどっちだと定義されてるの?
161: 2014/03/30(日)14:02 ID:???.net AAS
>>160
俺はロケールや文字コードの知識はほとんど無いんでよく分かってない。
↓は winXPsp3 + perl5.16.3 + ロケール = 「日本」 の環境での実験結果。

・ [ァ-ィ] が ア にマッチするか実験。( 文字コード順ならマッチしないはず )

----------------------------------------
use locale;

if ( "ア" =~/[ァ-ィ]/ ){ print "hit\n"; }
else { print "no hit\n"; };
----------------------------------------
結果: hit ( マッチしたので文字コード順ではない )

この環境での範囲指定は↓の順みたい。これはshift_jisの並び順とは違う。(これが辞書順?)
----------------------------------------
_0123456789aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZァアィ
スセソタチッツテトナニヌネノハヒフヘホマミムメモャヤュユョヨラリルレロワヲン
----------------------------------------

文字コードでなくロケールに依存するという発想は思い付かなかったわ、そっちの線で
また実験しながら遊んでみるよ、辞書順とやらも調べてみる。ヒントありがとう。
162: 2014/03/31(月)00:44 ID:???.net AAS
(>>156)
ついに [a-z] が t 以降にマッチしない動作の再現に成功!
et_EE.ISO8859-1 の代わりに et_EE.ISO8859-15 を使ったら再現出来ました!

今まで助言をくれたみなさんありがとう〜。自分一人じゃ絶対無理だった。

↓こちらの方々にも感謝〜

初心者もOK! FreeBSD質問スレッド その117
2chスレ:unix

詳しい手順はもう少し調べて整理してから載せます。
163: 2014/04/01(火)22:34 ID:???.net AAS
正規表現道場 in ジオシティーズ
外部リンク:akiba.geocities.jp

とりあえず場所確保。
164: 2014/04/12(土)17:21 ID:???.net AAS
2ch .scに移転しました。

正規表現道場 Part2
2ch.scスレ:php

■ 2ch.netの問題点

・ 2chscがNGワードになってるので正規表現をスレに貼るのに支障が出る。何より言論統制はイクナイ。
・ 管理人が今後どう動くか予測が付かない。
 自暴自棄になりIPや書き込み履歴を大公開して逃走する可能性すらある。会社IPの人は注意。
165: 2014/04/12(土)20:53 ID:kZRku0LV.net(1) AAS
もうこっちに帰ってくるなよ
166: 2014/04/13(日)01:40 ID:A85j5pKxi(1) AAS
転載禁止の所を転載している謎技術とか行ってるけど、現にコレって転載だろ。
いろいろまだ抗争?も解決してないし、それが落ち着くまではこっちで様子みるべ。
外部リンク:otona2ch.net
167
(1): 2014/04/13(日)05:58 ID:HM6UoDHVD(1) AAS
[a-z] が t u v w x y にマッチしない件 ( 2014/4/13 )
外部リンク[html]:akiba.geocities.jp
168: 2014/04/14(月)21:18 ID:I3Hv/OmoJ(1) AAS
うーん、サイト名が長すぎだなぁ。そのうちに検索結果で他と被りにくい名前に変えます。
ページタイトルも「エストニア」は入れるべきだった。
169: 2014/04/15(火)00:52 ID:qzSZ8Z/6K(1/2) AAS
せいきなんとか
外部リンク:akiba.geocities.jp

ググりやすさ重視の名前にしました。「正規表現」の書きにくさを回避。
検索でも他サイトと被りそうにないし。
170
(1): 2014/04/15(火)16:53 ID:ltPJoRVKc(1) AAS
>>167.sc
余談のsedのロケールのバグ、記事にロケール出てこねぇぞと思ったらコメント欄の話か。
しかしこの記事もコメントの指摘もなんか見覚えあるな、と思ったらこの通りすがり俺だったよ。
処理中の文字が延々巻き戻るのは見たときは謎かったなぁ…
文字範囲の決定にもロケール使ってるとは想像もしてなかったわ
171: 2014/04/15(火)20:40 ID:qzSZ8Z/6K(2/2) AAS
>>170
デバック出来るとかすごいね、解析GJ。肝心のバグはもうfixされてるん?

>文字範囲の決定にもロケール

ロケールの知識が無い俺にはsortと文字範囲で順番が違うperlの仕様の
ほうが謎だった。sortと文字範囲の両方を使うコードでごちゃごちゃになりそう、ってね。
172
(1): 2014/04/15(火)20:38 ID:CfZz5H/X.net(1) AAS
Yahoo! Pipesの仕様なんて知らんが
文字列の開始も終わりも指定してないということは
.*/で一番最後の/までが対象として消える可能性はある
173: 2014/04/16(水)10:42 ID:???.net AAS
>>172
ありがとうございます、確かめてみます
174: 2014/04/17(木)01:54 ID:eRhSPtIcZ(1) AAS
ああ、fixもなにも2010年で更新止まってるんだね。

sed for Windows
外部リンク[htm]:gnuwin32.sourceforge.net
175: 2014/04/26(土)23:09 ID:1SAuVtJQy(1) AAS
タグの中に "ある文字列" を含まない正規表現 : せいきなんとか
外部リンク[html]:akiba.geocities.jp

せいきなんとか でググっても一向にヒットしない件。失敗したか・・。
176: 2014/04/27(日)09:14 ID:WGxc1V+4r(1/4) AAS
あ、そうか <a href=〜>せいきなんとか</a> みたいにリンクタグで
囲ってないからか・・
177: 2014/04/27(日)13:06 ID:WGxc1V+4r(2/4) AAS
実験に使ったヤフーのHTMLソースの中に

d<a.length;

みたいなjsが2つあるのが発覚。<a\b がこれに誤爆するから
実験結果に大幅な狂いが出ている可能性大。

論文の撤回するなら今でしょ。
178: 2014/04/27(日)18:24 ID:WGxc1V+4r(3/4) AAS
jsの中に <a href="〜"> 〜 <\/a> も発見。だめだこりゃ。
179
(2): 2014/04/27(日)22:09 ID:WGxc1V+4r(4/4) AAS
差分
外部リンク[html]:akiba.geocities.jp

1、\s を \b に書き換えると2〜3倍遅くなる → jsへの誤爆による間違い

2、/xsigaa を /xsg にすると 0.370 秒
   → i を消したことで小文字の "xyz" にマッチしなくなる、致命的ミス。

3、最適化の影響が強烈に → 間違いを根拠にした思い込みだった。
180: 2014/04/29(火)19:15 ID:6kcXgg+78(1/4) AAS
いちいち <br> を付けるのが面倒だから <pre> 〜 </pre> で手抜きしたら
コピペした時に改行が反映されずに1行に繋がった文字列がクリップボードに入ってた。

てことで <br> を使ってアップし直しました。

クリップボードを置換するアプリで実態参照の置換と一緒にやれば楽そう。
--------
そういえばココって連投規制あるのかな・・
181: 2014/04/29(火)19:21 ID:6kcXgg+78(2/4) AAS
>>179 は pre のままなので試したい人は↓の部分を選択してコピペしてみてね。
divをまたいで選択すると1行に繋がった。( win + firefox )

--------------
<1> 先読みを使ったシンプルなもの
m/
<a\s[^>]*>
(?:
--------------
182: 2014/04/29(火)19:57 ID:6kcXgg+78(3/4) AAS
$TestString = "置換したいテキスト";

# <br> 以外の置換をしないなら (0) にする。
if (1){
$TestString =~ s/ & /&/xg;
$TestString =~ s/ < /</xg;
$TestString =~ s/ > />/xg;
$TestString =~ s/ \" /"/xg;
$TestString =~ s/ \' /'/xg;
}
$TestString =~ s/ \n /<br>\n/xg;
183: 2014/04/29(火)20:00 ID:6kcXgg+78(4/4) AAS
↑失敗。

$TestString = "置換したいテキスト";

# <br> 以外の置換をしないなら (0) にする。
if (1){
$TestString =~ s/ & /&amp;/xg;
$TestString =~ s/ < /&lt;/xg;
$TestString =~ s/ > /&gt;/xg;
$TestString =~ s/ \" /&quot;/xg;
$TestString =~ s/ \' /&apos;/xg;
}
$TestString =~ s/ \n /<br>\n/xg;
184: 2014/04/30(水)01:17 ID:cy+DeXB/r(1) AAS
Perl 5.14 から使える正規表現のオプション : せいきなんとか
外部リンク[html]:akiba.geocities.jp
185: 2014/05/01(木)20:25 ID:UfiPBLyV5(1) AAS
(>>179)
>1、\s を \b に書き換えると2〜3倍遅くなる → jsへの誤爆による間違い

後ろをみないマッチで書くことよりこういう対策のほうがよっぽど大事だな・・。
閉じタグが無い場合にどこかで走査を打ち切るような書き方をするべきか。
186
(1): 2014/05/02(金)13:26 ID:Y6W0G4b1J(1) AAS
(試作) 文字数制限

my $cnt =  0; my $str = ""; my $res = "";
for ( my $i=0; $i<100 ; $i++ ){
$str = '<a href="./">' . "e" x $i . '</a>';
if ( $str =~ m/
<a\s[^>]++>
(?{ $cnt = pos($str); })
(?:
  (?:
    [^<]
    |(?!<\/?+a\b).
  ){1,5}
  (?(?{ 30 < pos($str)-$cnt;  })(*SKIP)(*PRUNE)(*F))
)*+
<\/a>
/xsgiaa
){ $res .= "$i,"; } # if
} # for
print "$res\n";
187: 2014/05/03(土)13:19 ID:DYMsAnw3D(1/3) AAS


my $cnt =  0; my $TestString = ""; my $res = ""; my $err="";
for ( my $i=0; $i<50 ; $i++ ){
$TestString = '<a href="./">' . "e" x $i . '</a>';
if ( $TestString =~ m/
<a\s[^>]++>

(?:
  [^<]
|
  (?!<\/?+a\b).
){0,30}+

(?:
  <\/a>
|
  (?{ $err .= pos($TestString) . ","; })
  (*SKIP) (*PRUNE) (*F)
)

/xsiaa
){ $res .= "$i,"; } # if
} # for
print "$res\n";
if ($err){ print "<\/a> 404 => $err\n"; }
188: 2014/05/03(土)13:21 ID:DYMsAnw3D(2/3) AAS
(>>186) /g 不要。
189: 2014/05/03(土)13:51 ID:DYMsAnw3D(3/3) AAS
連投規制?
190: 2014/05/05(月)18:07 ID:eelRtXApD(1/2) AAS
線形代数を学ぼう
外部リンク:yonex1.cis.ibaraki.ac.jp

高等学校数学C 行列
外部リンク:ja.wikibooks.org

行列の積
外部リンク[html]:www.geisya.or.jp

行列のできる法律相談所
外部リンク:www.ntv.co.jp
191: 2014/05/05(月)21:14 ID:eelRtXApD(2/2) AAS
行列の計算
外部リンク[html]:www2u.biglobe.ne.jp

どわすれ Perl メモ
外部リンク[html]:www001.upp.so-net.ne.jp

perldoc.jp : 配列の配列の定義とアクセス
外部リンク[pod]:perldoc.jp
192: 2014/05/08(木)02:37 ID:???.net AAS
ファイル検索ツールでパスを入力する時、「\」「/」を入れると候補が0になってしまいます
d:\\abc\\123\\ のように入力しているのですが、間違っていますか?
193: 2014/05/08(木)03:20 ID:Zyar7s4i.net(1) AAS
そのファイル検索ツールのところで聞けばー
194: 2014/05/10(土)19:05 ID:28mBAE6hX(1/3) AAS
Regexp-Assemble : 正規表現の最適化モジュール
外部リンク:search.cpan.org
195
(1): 2014/05/10(土)23:53 ID:28mBAE6hX(2/3) AAS
変態的正規表現モジュールを支える Regexp::Assemble::Compressed
外部リンク:perl-users.jp

>「ばよえ〜ん警報発令!?」でお馴染みの

ww
196: 2014/05/10(土)23:56 ID:28mBAE6hX(3/3) AAS
404 Blog Not Found : perl - Regexp::Assembleのススメ
外部リンク[html]:blog.livedoor.jp
197
(1): 2014/05/11(日)00:22 ID:tZLC/oS6w(1/6) AAS
(>>195)
> (?-xism:[1-9a-zな-の])

ロケールによってはこれは・・
198: 2014/05/11(日)10:37 ID:tZLC/oS6w(2/6) AAS
(>>197)
あ、perlでは範囲指定は影響しない(?)んだった。
199: 2014/05/11(日)20:44 ID:tZLC/oS6w(3/6) AAS
Regexp::Assemble のインストール

もばぎつかい の 新ぶろぐ » 正規表現生成モジュールってあるんだ・・・
外部リンク:mobagitukai.xrea.jp
200
(1): 2014/05/11(日)21:05 ID:tZLC/oS6w(4/6) AAS
ubuntu で cpan

Ubuntu日本語フォーラム
Ubuntu 上で perl モジュールはどのようにしてインストールなさっているでしょうか?
外部リンク[php]:forums.ubuntulinux.jp
201: 2014/05/11(日)22:07 ID:tZLC/oS6w(5/6) AAS
use Regexp::Assemble::Compressed;
my $rac = Regexp::Assemble::Compressed->new;
for my $char (1 .. 9, 'a' .. 'z', qw(ぁ あ い ぃ う ぅ)) {
$rac->add($char);
}

[結果]
(?^u:[1-9a-zぁ-う])

/u が付いてきた。よく出来てるなぁ。
202: 2014/05/11(日)22:28 ID:tZLC/oS6w(6/6) AAS
( '[a]', '[b]', '[cd]', 'e') => (?^:(?:[abe]|[cd]))
( 'a', 'b', '\cd', 'e') => (?^:[\cDabe])
( '\x61', 'b', '[cd]', 'e') => (?^:(?:[abe]|[cd]))

( '\c)', 'a') => (?^:[\c)a])
( '(\c))', 'a') => (?^:(?:(\c))|a))
203: 2014/05/12(月)17:23 ID:ETxOhGhXB(1/2) AAS
タライ
外部リンク:en.wikipedia.org
204: 2014/05/12(月)20:58 ID:ETxOhGhXB(2/2) AAS
perldoc.jp : Benchmark - Perl コードの実行時間のベンチマークを行なう
外部リンク[pod]:perldoc.jp

> use Benchmark qw/:all/;

> この表は遅いものから早いものの順にソートされ、それぞれのテスト間の
> 速度の差を百分率で表示します。

> 空ループのシステム時間は、実際のコードを含むループのシステム時間よりも
> 多少多くかかることがある
205: 2014/05/13(火)13:17 ID:StO5KeEw5(1/7) AAS
(>>200)
ubuntu13.10日本語Remix版にはデフォでRegexp::Assembleが入ってる?
何もしてないのに使えた。
206: 2014/05/13(火)13:23 ID:StO5KeEw5(2/7) AAS
Regexp::Assemble - ubuntu13.10日本語Remix版 でのパス
/usr/share/perl5/Regexp/Assemble.pm
バージョンは0.35
207: 2014/05/13(火)13:30 ID:StO5KeEw5(3/7) AAS
print "\cあ"; ←エラー表示でAssemble.pmのパスが分かる。
208: 2014/05/13(火)14:03 ID:StO5KeEw5(4/7) AAS
↑嘘
-----------------------------------
#!/usr/bin/perl
use Regexp::Assemble;
my $ra = Regexp::Assemble->new;
$ra->add( '\cあ' );
print $ra->re;
-----------------------------------
209: 2014/05/13(火)14:06 ID:StO5KeEw5(5/7) AAS
win - perl5.16.3
-----------------------------------
Character following "\c" must be ASCII at C:/Perl/site/lib/Regexp/Assemble.pm li
ne 1003.
-----------------------------------
210: 2014/05/13(火)19:16 ID:StO5KeEw5(6/7) AAS
ペールで文字コード変換

404 Blog Not Found : perl - Encode 入門
外部リンク[html]:blog.livedoor.jp
211: 2014/05/13(火)20:02 ID:StO5KeEw5(7/7) AAS
はてな: 404 Blog Not Found 「Perlの文字コードの記事のまとめ」
外部リンク:d.hatena.ne.jp

ホリエモンにぶっこ抜かれた人らしい
212
(1): 2014/05/14(水)01:23 ID:HC0rJwFJ3(1/3) AAS
404 Blog Not Found: regexp - で Apache Combined Log を Parse する
外部リンク[html]:blog.livedoor.jp

>qr/\"((?:\\[\\\"]|.)*?)\"/
『"\"』に誤爆する。けどデータ上は大丈夫なのか。これはよっぽど
自信がないと書けない書き方だ。

Q1、強欲を使わないのは何故か。
*?のほうが早いから?使っても変わらないから?それとも互換性の問題?

Q2、ループ展開のようなことは出来ないのか否か。直感的にはピリオドで
1文字ずつの繰り返しでマッチさせてるので相当遅いイメージ・・
しかもピリオドがあるのは分岐の後半。
213: 2014/05/14(水)05:37 ID:HC0rJwFJ3(2/3) AAS
古いperlとの互換性の問題なら新しいperl用と古いperl用の2種類を
用意すれば強欲が使えるようになったりして?

強欲 & ループ展開 で相当早くなるはず。
214: 2014/05/14(水)11:33 ID:HC0rJwFJ3(3/3) AAS
正規表現でなく文字列操作でやるという手も。正規表現より早いかも。
215: 2014/05/15(木)23:30 ID:UOKML+baZ(1) AAS
apache ログファイル (Combined Log / Common Log )
外部リンク[html]:httpd.apache.org

Common Log
-----------------
127.0.0.1 - frank [10/Oct/2000:13:55:36 -0700] "GET /apache_pb.gif HT
TP/1.0" 200 2326
-----------------

Combined Log
-----------------
127.0.0.1 - frank [10/Oct/2000:13:55:36 -0700] "GET /apache_pb.gif HT
TP/1.0" 200 2326 "外部リンク:www.example.com "Mozilla/4.08 [en] (Win98; I ;Nav)"
-----------------
216: 2014/05/16(金)00:59 ID:SczEvyv7k(1/2) AAS
よし、出来た。あとでHP作ってここに貼ります。
217: 2014/05/16(金)07:50 ID:SczEvyv7k(2/2) AAS
小飼 弾が手負いのうちに容赦なくツッコミを入れておく : せいきなんとか
外部リンク[html]:akiba.geocities.jp
218: 2014/05/17(土)23:42 ID:yNqAUnxjc(1) AAS
正規表現を何度も使うより一度で全部取得する書き方にしたほうが
早いのかも知れない。壊れた不正なデータがないのが前提だけど。
219: 2014/05/18(日)01:02 ID:Z9yPWubZ+(1/11) AAS
qr/\"(.*?)\"/
vs
qr/\"([^\"]*)\"/

上のほうが9%早い。
220: 2014/05/18(日)01:24 ID:Z9yPWubZ+(2/11) AAS
re2 vs 「一度に全部取得」

( \" あり ) => 後者が14%早い。
( \" なし ) => 後者が14%早い。

\" ありでも ng を超えられることが確定。
2つに分ける必要のない正規表現を分けて遅くなったということか・・。
221: 2014/05/18(日)15:01 ID:Z9yPWubZ+(3/11) AAS
## メールアドレス

404 Blog Not Found : regexp - 'test@[127.0.0.1' . "\\\x1f]" はRFC2822準拠
外部リンク[html]:blog.livedoor.jp

雑技たん : メールアドレスの正規表現
外部リンク[htm]:www.din.or.jp

なんでこんな規格にしてもうたん。。 >RFC
222: 2014/05/18(日)15:04 ID:Z9yPWubZ+(4/11) AAS
↑移転先

「danコガいはもう正規表現をblogに書くな」と言わせないでくれ
外部リンク:blog.everqueue.com
223: 2014/05/18(日)15:13 ID:Z9yPWubZ+(5/11) AAS
ASCII文字コード
外部リンク[html]:e-words.jp

> \x1f

US Unit Separator ユニット区切り
( \x20 の1つ前にある制御文字 )
224
(1): 2014/05/18(日)17:33 ID:Z9yPWubZ+(6/11) AAS
> \\\Sは明らかに手抜きであり、正しくは\\[\x01-\x09\x0B-\x0c\x0e-\x7f]

B だけ大文字なのは何故?

あとこれ、>>76のツールで階層表示にしてみると無駄なカッコが多いのが分かる。
ツール使えば十分手作業で削除出来る出来る量だからやればいいのに。
225
(1): 2014/05/18(日)17:56 ID:Z9yPWubZ+(7/11) AAS
1.正規表現をクリップボードにコピー
2.>>76 のツールの 貼り付け ボタンを押す
3.ctrl + W または 左上のフォームをダブルクリック してフォーム最大化
4.要らないカッコを手動で消す

Web上で階層表示してくれるサイトってないのかな、あるととても助かる。
このツールはwindows上じゃないと動かないから。
226: 2014/05/18(日)18:10 ID:Z9yPWubZ+(8/11) AAS
あれ?そういえば文字数の制限が無い。
メールアドレスに文字数制限って無いのかな。
この正規表現なら1GBのメールアドレスも通ってしまう件。

↓これ、ループ展開出来るね。

"
(?:
  \\
  [^\r\n]
  |
  [^\\"]
)*
"
227: 2014/05/18(日)18:40 ID:Z9yPWubZ+(9/11) AAS
雑技たんのは 0-127 で作ってるっぽいけど弾たんのは [^\r\n] によって
マルチバイト文字もマッチするような気がする。RFCではどちらが・・?
228: 2014/05/18(日)20:08 ID:Z9yPWubZ+(10/11) AAS
"あ"@yahoo.com

弾たん (RFC2822) => マッチ
雑技たん (RFC 5322) => マッチせず
229: 2014/05/18(日)21:23 ID:Z9yPWubZ+(11/11) AAS
(>>224) の \S はマルチバイト文字にもマッチするが、置き換えられたものは↓これ。

[\x01-\x09\x0B-\x0c\x0e-\x7f]

同じように [^\r\n] や [^\\"] もマルチバイト文字に
マッチすることを見落としているんだろうか?
あと 128-255 にもマッチする。

詳しい人おらんかね?
230: 2014/05/19(月)00:24 ID:tmMbdCjCc(1/4) AAS
まぁいいや、間違いと分かってて放置してるのかも知れないし。
RFCに興味がない自分がこれ以上首を出すのもなんだか・・だし。

メールアドレスの話はこれでおわり。
231: 2014/05/19(月)15:53 ID:tmMbdCjCc(2/4) AAS
(>>225)
もし作る人がいたらこうして欲しいな。
(
 X
|
 Y
)

これだと消していいカッコかどうかが分かりにくい。
(
 X
 |
 Y
)
232: 2014/05/19(月)16:30 ID:tmMbdCjCc(3/4) AAS
・階層ごとに色分け
・メタ文字の着色
・階層の折り畳みor展開
・階層化された正規表現の一行化機能
・掲示板に貼り付けるための文字参照化
・言語ごとのメタ文字の対応

さすがに欲張りすぎか。
233: 2014/05/19(月)22:22 ID:tmMbdCjCc(4/4) AAS
Bug Catharsis : 正規表現の起源
外部リンク:zecl.hatenablog.com
234: 2014/05/20(火)02:04 ID:72eX0kjUb(1/2) AAS
どさにっき 2.0 : #!/usr/bin/env
外部リンク[html]:ya.maya.st
235: 2014/05/20(火)19:40 ID:72eX0kjUb(2/2) AAS
詳説 正規表現 第3版 の誤植( 日本語版 / 初版第1刷 ) : せいきなんとか
外部リンク[html]:akiba.geocities.jp
236: 2014/05/22(木)01:25 ID:???.net AAS
sc連投規制中なう。
237: 2014/05/22(木)14:43 ID:???.net AAS
(sc>>212)
>qr/\"((?:\\[\\\"]|.)*?)\"/
> これはよっぽど自信がないと書けない書き方だ。

今考えると弾たんは単に2文字否定の作り方を知らなかっただけだな・・。
知ってたらこんなあやふやなものを作ろうなんて思わないし。

早さに拘るのに早い正規表現の作り方を知らないというちょっと残念な弾たん。
他の正規表現を見ても正規表現自体のスキルは高くない。
なんでもこなすオールラウンダーだから薄く広くになるんだろうな。

しかしこの程度の正規表現スキルでcpanのモジュール作って大丈夫なんだろうか。
探せばバグが出てきそうな予感。
238: 2014/05/22(木)15:18 ID:???.net AAS
正規表現のスキル自体とモジュール作成能力には直接的な相関関係はないからなあ・・・
239: 2014/05/22(木)16:18 ID:???.net AAS
(‥ )フーン
240: 2014/05/22(木)16:49 ID:???.net AAS
そういう指摘するだけでモノ作ったり貢献してなさそうなお前はもっと駄目な人間だから安心しろ。
弾はなんだかんだ色々作ってるし色々な方面に貢献してる。
241: 2014/05/22(木)18:11 ID:???.net AAS
指摘することも立派な貢献だと思いますよ。現に指摘によって処理時間が半分以下になってますし。
242: 2014/05/23(金)17:54 ID:???.net AAS
まだ連投規制が解除されないなう

## m//

キャッシュを保持してない状態では空文字列にマッチする。
うっかりするとバグの原因になり得る。
243
(1): 2014/05/23(金)19:00 ID:???.net AAS
.scの連投規制は俺も食らったけど(専ブラだと「書き込めたかも…」で書けてない状態)、
Webブラウザで投稿したらBOT疑惑なのでCapchaしろになってそれで解除できた。

URLを貼りまくって連投規制になった場合は知らん。
244: 2014/05/23(金)19:22 ID:???.net AAS
>>243
俺の場合は「連続投稿は禁止されています。Error!」って出るだけ。
普通に連続投稿が原因で規制食らってるみたいだからもうダメかも分からんね。

人が少ないから自然に独り言みたいになるのにそれで規制されたら
ますます人少なくなるなw
245: 2014/05/23(金)20:03 ID:Hym2JLxi.net(1) AAS
たらこテョンねるの話はたらこテョンねるでやれ
246: 2014/05/23(金)22:52 ID:???.net AAS
パールを使った正規表現
外部リンク[html]:omatomen.net
247
(1): 2014/05/24(土)02:35 ID:???.net AAS
>>2 正規表現メモ

(?num) の説明文にある・・

-------------------
(\()?[^()]+(?(1)\))
-------------------

これは (?num) とはまったく関係ない正規表現。ただの条件文。
248: 2014/05/24(土)15:06 ID:???.net AAS
>>247
----------------------------
(?(R)...) PCREで、再帰的パターンの開始を示します。
<(?:(?(R)\\d++|[^<>]*+)|(?R))*>
----------------------------

説明文は間違い。これは条件式の条件。\\d は \d の間違い。

perldoc.jp
外部リンク[pod]:perldoc.jp

(?(condition)yes-pattern|no-pattern) の項目を参照。
249: 2014/05/27(火)02:44 ID:???.net AAS
詳説 正規表現のAmazon値 (1年前との比較)

・古本
初版 &amp;nbsp;500円 → 1998円
2版 1600円 → 3150円
3版 4000円 → 3709円

・新品
3版 5184円

Amazon - "正規表現"
外部リンク:www.amazon.co.jp
250: 2014/05/27(火)03:16 ID:???.net AAS
文字参照の処理、間違えてますよ > 2ch.net
251
(1): 2014/05/27(火)03:43 ID:???.net AAS
外部リンク[pm]:cpansearch.perl.org

↓ ^ か \A 忘れてね?

------------------------
$method =~ s/.*:外部リンク:o;
------------------------
252: 2014/05/27(火)03:49 ID:???.net AAS
----------------------------------------------------------
my ($hex, $name) = ($line =~ /^([0-9A-Fa-f]+)\s+(.*)/);
next if $name =~ /[a-z]/; # range, not character
----------------------------------------------------------

2行目だけ小文字に限定されてる。これで良いのか悪いのかは分からないが。
253
(1): 2014/05/27(火)14:20 ID:???.net AAS
外部リンク[pm]:cpansearch.perl.org
-----
せっかく [eE] と書いてるのに /i
= ($num =~ /([+-])?(\d+)(?:\.(\d+))?(?:[eE]([+-]?\d+))?/io);
-----
ちゃんと動くんだろうけどアンカー付けないのが気持ち悪い。
$int =~ s/(.*)(.{48})\z/$2/o;
-----
これミスでね? [k|g]
if ($style =~ /(?:romaji|[k|g]ana)$/){
254: 2014/05/27(火)14:23 ID:???.net AAS
本人に直接言う勇気がないらしい。まこと残念な人である
皆はこうならぬように
1-
あと 212 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.037s