トップページphp
219コメント91KB

正規表現道場 Part2

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2012/09/19(水) 18:58:43.51ID:bdgNsY2f
【正規表現道場の掟】

・言語不問

・質問も大歓迎。使用言語を書くのを忘れずに。

正規表現と関係ない話・質問は他スレへどうぞ。

前スレ
正規表現道場
http://kohada.2ch.net/test/read.cgi/php/1168450843/
0124nobodyさん2014/02/04(火) 13:39:28.33ID:???
皆様、こんにちは 質問させてください

テキスト内の文字を置き換えるアプリ(Devas)で作業をしています
正規表現で文字検索と置き換えしたいのですが表現法がわかりませんので
詳しい方アドバイス下さいませんでしょうか?

テキスト内には

.(ドット)abc"IMG
.(ドット)def"IMG
.(ドット)ghr"IMG

など . と "IMG で囲まれた数パターンの文字列がありこれに元文字列を利用し .photo を付け加えたいのです

.(ドット).photo.abc"IMG
.(ドット).photo.def"IMG
.(ドット).photo.ghr"IMG

検索、置き換え 共に正規表現が使えるアプリなのですがそれぞれどう表現して良いのか教えてくださいませんか?
よろしくお願いいたします 
0125 ◆QzqhRqBYxktP 2014/02/04(火) 13:41:51.03ID:???
・開始タグと閉じタグの間に文字列を含まない正規表現 (正規表現 否定 除く)

$_ = "ABC ABC DEF ABCDEF";

while ( m/
# Perl 5.10 以降で有効
ABC
[^ADX]* # 先頭の文字を使った高速処理
(?:
(?:
DEF (*ACCEPT) # マッチ成功
|\K ABC # 今までマッチした文字列を捨ててリスタート
|XYZ (*PRUNE) (*SKIP) (*F) # NGワード検出、マッチ失敗
|. # ↑の3つ以外の1文字
)
[^ADX]*
)*
(*COMMIT) (*F) # DEFで閉じられないまま終端に到達。
/xgsiaap )

{ print "match! <${^MATCH}>\n"; }

# NGワード、開始タグ、閉じタグの競合は想定していない。
# 例、NGワード="</" 、 閉じタグ="</div>"
0126nobodyさん2014/02/04(火) 20:09:35.38ID:xuvSG1oC
s/^\./.photo./g
行頭限定の場合
0127 ◆QzqhRqBYxktP 2014/02/05(水) 16:22:38.43ID:???
>>124
<検索>
\.([a-z\d]{1,4}"IMG\b)
<置換>
..photo.$1

\. を ( ) に入れてないのは処理効率を上げるため。
「abc」の部分は拡張子と考えて数字も許可した。(1文字以上4文字以下の英数字)

何かまずかったら遠慮なく。
01281242014/02/06(木) 18:00:16.14ID:???
たくさんレスいただきましてありがとうございます
お礼が遅れまして申し訳ありません

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

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

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

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

引き続きご指導いただければ幸いです よろしくお願いいたします
0129 ◆QzqhRqBYxktP 2014/02/06(木) 20:27:01.21ID:???
>>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 のような複数回置換による重複を防ぎたかったんですが
# この正規表現エンジンでは無理なようです。(>_<)
0130nobodyさん2014/02/06(木) 22:22:42.47ID:???
>>129
度々のレスありがとうございます

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

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

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

勉強になりました ありがとうございます m(_ _)m
0131nobodyさん2014/02/09(日) 02:41:58.21ID:???
質問させてください。
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"/';

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

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


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

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

Perl6 正規表現 I
http://dl.dropboxusercontent.com/u/16667824/perl6/AdventCalender/1/5.html
0143 ◆QzqhRqBYxktP 2014/02/17(月) 00:27:24.93ID:???
Perl6::Overview::Rule
http://search.cpan.org/~lichtkind/Perl6-Doc-0.36/lib/Perl6/Doc/Overview/Rule.pod

[foo|bar]+

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

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

が、新しいオモチャとしては十分楽しめそう。ついでに英語も覚えてしまおう。
0144 ◆QzqhRqBYxktP 2014/02/22(土) 00:25:15.35ID:???
S05
http://feather.perl6.nl/syn/S05.html
> Last Modified: 11 Feb 2014, Version: 174

A05
http://search.cpan.org/dist/Perl6-Doc/share/Apocalypse/A05.pod
> Last Modified: 18 May 2006, Number: 5, Version: 7

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

:ratchet があるのは最高だなぁ。
0145nobodyさん2014/03/01(土) 19:39:32.33ID:n8n41uDi
http://anago.2ch.net/test/read.cgi/applism/1393578532/139
http://anago.2ch.net/test/read.cgi/applism/1393578532/157
この書込の方を正規表現でNGにしたいと思っています。

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

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

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

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

Jeffrey Friedl
ttp://regex.info/

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

第2刷に対する正誤表 - 詳説 正規表現 第3版
ttp://www.oreilly.co.jp/books/9784873113593/#errata0

Google Books 詳説 正規表現 ※ 立ち読み可能
ttps://www.google.co.jp/search?tbm=bks&hl=ja&q=%E8%A9%B3%E8%AA%AC%E6%AD%A3%E8%A6%8F%E8%A1%A8%E7%8F%BE
0151nobodyさん2014/03/13(木) 06:24:42.94ID:???
ascii抜粋

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

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

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

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

---結果---
aaabbbccc

AAABBBCCC
0156nobodyさん2014/03/26(水) 20:28:04.50ID:???
### 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? )
http://lists.freebsd.org/pipermail/freebsd-bugs/2005-September/014529.html
http://lists.freebsd.org/pipermail/freebsd-bugs/2005-September/014531.html

正規表現 Part11
http://toro.2ch.net/test/read.cgi/tech/1363769640/330,325
0157nobodyさん2014/03/26(水) 22:02:12.05ID:???
FreeBSD - 2005/9/5
http://lists.freebsd.org/pipermail/freebsd-bugs/2005-September/014529.html
http://lists.freebsd.org/pipermail/freebsd-bugs/2005-September/014531.html

正規表現 Part11
http://toro.2ch.net/test/read.cgi/tech/1363769640/330,325

[[ 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で再現出来なくなっていれば対策が取られたということになる。
0158nobodyさん2014/03/30(日) 04:03:56.61ID:???
--------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/ に変えると英字以外の文字も英字の間に
挟まっていることが確認出来る。
0159nobodyさん2014/03/30(日) 04:24:51.20ID:???
--------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 だけにマッチさせる手段は無いと思われる。
0160nobodyさん2014/03/30(日) 05:25:46.81ID:???
>>156
「辞書順」はロケールに依存するが「文字コード順」は文字コードに依存する、んじゃね?
文字集合の範囲指定が文字コード順と定義されているなら、
いくらロケール切り替えても文字コード切り替えない限り無意味だろう。

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

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

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

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

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

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

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

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

初心者もOK! FreeBSD質問スレッド その117
http://toro.2ch.net/test/read.cgi/unix/1380865524/938-954n

詳しい手順はもう少し調べて整理してから載せます。
0163nobodyさん2014/04/01(火) 22:34:44.19ID:???
正規表現道場 in ジオシティーズ
http://akiba.geocities.jp/hp20140401/

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

正規表現道場 Part2
http://nozomi.2ch .sc/test/read.cgi/php/1348048723/l50

■ 2ch.netの問題点

・ 2chscがNGワードになってるので正規表現をスレに貼るのに支障が出る。何より言論統制はイクナイ。
・ 管理人が今後どう動くか予測が付かない。
 自暴自棄になりIPや書き込み履歴を大公開して逃走する可能性すらある。会社IPの人は注意。
0165nobodyさん2014/04/12(土) 20:53:07.28ID:kZRku0LV
もうこっちに帰ってくるなよ
0166nobodyさん2014/04/15(火) 11:21:18.41ID:qQPWwAKL
使用しているのはYahoo! Pipesのregexです
http://d.hatena.ne.jp/dacs/20080422/1208868051

○○/△△&amp;#xd;[□□

という文字列から△△だけを抜き出したくて、色々試してみているのですがどうもうまくいきません

".*/" -> replace -> ""
"\&amp;#xd;.+" -> replace -> ""

だと思うのですが、何か間違いがあるのでしょうか?
ちなみに

"[.+" -> replace -> ""

も試してみましたがダメでした
0167nobodyさん2014/04/15(火) 20:38:11.07ID:CfZz5H/X
Yahoo! Pipesの仕様なんて知らんが
文字列の開始も終わりも指定してないということは
.*/で一番最後の/までが対象として消える可能性はある
0168nobodyさん2014/04/16(水) 10:42:38.10ID:???
>>167
ありがとうございます、確かめてみます
0169nobodyさん2014/05/08(木) 02:37:21.25ID:???
ファイル検索ツールでパスを入力する時、「\」「/」を入れると候補が0になってしまいます
d:\\abc\\123\\ のように入力しているのですが、間違っていますか?
0170nobodyさん2014/05/08(木) 03:20:39.96ID:Zyar7s4i
そのファイル検索ツールのところで聞けばー
0171nobodyさん2014/05/22(木) 01:25:49.65ID:???
sc連投規制中なう。
0172nobodyさん2014/05/22(木) 14:43:31.27ID:???
(sc>>212)
>qr/\"((?:\\[\\\"]|.)*?)\"/
> これはよっぽど自信がないと書けない書き方だ。

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

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

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

## m//

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

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

人が少ないから自然に独り言みたいになるのにそれで規制されたら
ますます人少なくなるなw
0180nobodyさん2014/05/23(金) 20:03:59.73ID:Hym2JLxi
たらこテョンねるの話はたらこテョンねるでやれ
0181nobodyさん2014/05/23(金) 22:52:00.36ID:???
パールを使った正規表現
http://omatomen.net/archives/1002062987.html
0182nobodyさん2014/05/24(土) 02:35:30.04ID:???
>>2 正規表現メモ

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

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

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

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

perldoc.jp
http://perldoc.jp/docs/perl/5.14.1/perlre.pod

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

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

・新品
3版 5184円

Amazon - "正規表現"
http://www.amazon.co.jp/s/field-keywords=%E6%AD%A3%E8%A6%8F%E8%A1%A8%E7%8F%BE
0185nobodyさん2014/05/27(火) 03:16:35.15ID:???
文字参照の処理、間違えてますよ > 2ch.net
0186nobodyさん2014/05/27(火) 03:43:16.09ID:???
ttp://cpansearch.perl.org/src/DANKOGAI/Unicode-Char-0.02/lib/Unicode/Char.pm

↓ ^ か \A 忘れてね?

------------------------
$method =~ s/.*:://o;
------------------------
0187nobodyさん2014/05/27(火) 03:49:35.83ID:???
----------------------------------------------------------
my ($hex, $name) = ($line =~ /^([0-9A-Fa-f]+)\s+(.*)/);
next if $name =~ /[a-z]/; # range, not character
----------------------------------------------------------

2行目だけ小文字に限定されてる。これで良いのか悪いのかは分からないが。
0188nobodyさん2014/05/27(火) 14:20:55.14ID:???
ttp://cpansearch.perl.org/src/DANKOGAI/Lingua-JA-Numbers-0.04/lib/Lingua/JA/Numbers.pm
-----
せっかく [eE] と書いてるのに /i
= ($num =~ /([+-])?(\d+)(?:\.(\d+))?(?:[eE]([+-]?\d+))?/io);
-----
ちゃんと動くんだろうけどアンカー付けないのが気持ち悪い。
$int =~ s/(.*)(.{48})\z/$2/o;
-----
これミスでね? [k|g]
if ($style =~ /(?:romaji|[k|g]ana)$/){
0189nobodyさん2014/05/27(火) 14:23:03.78ID:???
本人に直接言う勇気がないらしい。まこと残念な人である
皆はこうならぬように
0190nobodyさん2014/05/27(火) 14:28:03.82ID:???
今度は大文字限定。
$ja =~ tr/[G-Z]//d;

ITPro: tr///d
http://itpro.nikkeibp.co.jp/article/Reference/20080930/315784/
0191nobodyさん2014/05/27(火) 14:50:18.14ID:???
あれ、/o が使われてる。なんでapache logのltsv変換には
使われてなかったんだろう。ああいう時こそ効果的なのに。
0192nobodyさん2014/05/27(火) 15:43:22.68ID:???
■ combined2ltsv.pl の re で /o の有無をタイム計測

/o なし
12724/s

/o あり
31689/s

/o あり は2.5倍早い。これは報告したほうがいいかも。
0193nobodyさん2014/05/27(火) 16:02:40.01ID:???
(>>186)
これに /o がついてるとなんか笑ってしまうw

余談追加。俺は報告なんかしないんで報告したい人がいたらしてね。

小飼 弾が手負いのうちに容赦なくツッコミを入れておく
http://akiba.geocities.jp/hp20140401/2014/006.html
0194nobodyさん2014/05/29(木) 03:21:04.45ID:???
(>>188)
---------------
use utf8;
---------------
\d
---------------

弾たんにならこれで通じるだろう。(確信)
0195nobodyさん2014/05/29(木) 16:45:47.77ID:???
神戸大:オートマトン
ttp://kurt.scitec.kobe-u.ac.jp/~kikyo/lec/07/automaton/k5.pdf

行列の次は集合か・・もう忘れたよ・・覚えたことないけど。
0196nobodyさん2014/05/30(金) 01:37:35.60ID:???
関西学院大学: 集合
http://www.kwansei.ac.jp/hs/z90010/sugaku1/kakuritu/syugo/set.htm

とっても分かりやすい。・・あれ?これ大学でやる内容か?中がっ(ry
0197nobodyさん2014/05/30(金) 01:52:56.08ID:???
↑ /hs/ = ハイスクールでした。
0198nobodyさん2014/05/30(金) 06:37:19.19ID:???
Q、 perlの正規表現では \A\z == ε である。では、 ??? == φ の ??? は何になるか。
0199nobodyさん2014/05/30(金) 19:16:27.41ID:???
if( () =~ "" ){ print "hit\n"; } else { print "no\n"; };
結果 hit

答え、なし
0200nobodyさん2014/05/30(金) 21:43:37.74ID:???
() と "" を比較して no を返す方法はあるか。( φとεの比較 )

() eq ""
() == ""

"" eq undef
"" == undef

() eq undef
() == undef

すべてtrueが返る。
0201nobodyさん2014/05/30(金) 22:31:10.55ID:???
弾たん : perl - にも真偽値は存在する
http://blog.livedoor.jp/dankogai/archives/51268304.html

ちなみにブログのトップではGoogle Chromecastをボロクソに叩きつつ、Chromecastへのamazonアフィを
張るというすご技を展開されております。

こういう人相手に>>193を報告しにいってもスルーされるだけだと思うよ。カネにならないからね。
0202nobodyさん2014/06/01(日) 03:26:43.94ID:???
てすてす &
0203nobodyさん2014/06/01(日) 10:07:29.84ID:???
>>201
それ、お前向けにカスタマイズされてるだけだろ。
0204nobodyさん2014/06/01(日) 10:29:53.68ID:???
こういう陰口叩くやつよりマシ
0205nobodyさん2014/06/06(金) 06:34:46.02ID:???
test
0206nobodyさん2014/06/06(金) 06:36:44.82ID:???
test
0207nobodyさん2014/06/06(金) 06:39:17.80ID:qyn3RpL3
test
0208nobodyさん2014/06/09(月) 20:39:55.26ID:Xlk9Lxk9
javascriptでhtmlタグ内以外での検索をしようとしていますが、上手く行きません。お助け下さい。

lat = 'あい';
body = '<a href="あい">あい</a>';
reg = new RegExp(">[^<][\s\S]*?" + lat + "[\s\S]*?<","m");
body.match(reg);
console.log(reg.index);

13が返って欲しいのですが、undifinedになります。
0209nobodyさん2014/06/10(火) 15:56:17.87ID:???
当スレは中級者以上向けになっているのでこちらへ。

Regular Expression(正規表現) Part12
http://peace.2ch.net/test/read.cgi/tech/1387257592/

jsならieか否か、または両方かも書いたほうが良いでしょう。
0210nobodyさん2014/06/10(火) 18:29:25.24ID:pkqjoeBF
>>209
ご誘導ありがとうございます!
0211nobodyさん2014/06/19(木) 11:10:47.66ID:???
http://home.hiroshima-u.ac.jp/fujita/Class/Kisoron/set.pdf
計算機基礎論 - set.pdf
0212nobodyさん2014/06/21(土) 14:09:56.93ID:???
>>1
関連スレのテンプレ入り

理論計算機科学
http://peace.2ch.net/test/read.cgi/tech/1403321199/
0213nobodyさん2014/06/25(水) 15:49:19.16ID:???
確率の基本 - 青空学園
http://aozoragakuen.sakura. ne.jp/probability/probability.html

豪快に脱線中。言論統制対策でスペース。
0214nobodyさん2014/06/25(水) 16:17:08.28ID:???
このスレって誰かの日記帳スレだったの?
0215nobodyさん2014/06/25(水) 16:21:27.13ID:???
俺のメモ帳だけど?
0216nobodyさん2014/06/25(水) 16:26:13.98ID:???
ならコテ付けろ
0217nobodyさん2014/06/26(木) 14:34:09.08ID:???
確率 1/10 で当たるんなら 10 回やれば当たる?
http://www.math.kobe-u.ac.jp/HOME/saji/mathyomi/probability.html

確率は正規表現の処理効率向上に使う。
"|" による分岐で確率の高いほうを前に置いたほうが早くなるetc..
0218nobodyさん2014/06/27(金) 22:19:38.37ID:???
## 確率の実験

my $cnt=0;

for (my $i=0; $i<1000000; $i++){

if ( int(rand(3)) == 0 || int(rand(3)) == 2 || int(rand(3)) == 1)
{
$cnt++;
}# if

} #for
print "$cnt\n";

__END__

&& ・・・ A∧B
|| ・・・ A∨B
0219nobodyさん2014/06/29(日) 14:17:12.43ID:???
傘スレの無能っぷりが酷い。正規表現作ってやりゃ済む話じゃないか。
■ このスレッドは過去ログ倉庫に格納されています