[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 2chのread.cgiへ]
Update time : 07/03 06:01 / Filesize : 179 KB / Number-of Response : 640
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

正規表現道場



1 名前:nobodyさん [2007/01/11(木) 02:40:43 ID:uW7xEbZY]
【正規表現道場の掟】

・言語不問

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

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

206 名前:nobodyさん mailto:sage [2007/10/06(土) 00:07:46 ID:???]
$text=~ s#\[(.*?)\]#my$r=$1;(my$s=$1)=~s/([^\w ])/'%'.unpack('H2',$1)/ge;
$s=~tr/ /+/;'[<a href="foo.bar?query='.$s."\">$r</a>]"#ges;

こんな風でどう?

207 名前:nobodyさん [2007/10/06(土) 00:35:40 ID:1+GhnPpX]
>>205-206
どちらも上手く機能しました。
奥が深いですね

208 名前:nobodyさん [2007/10/06(土) 16:42:21 ID:kTx5Crj6]
普通の文字として\を表現するにはどうすればいいですか?
C言語風には、'\\'みたいなやつです

209 名前:nobodyさん mailto:sage [2007/10/06(土) 17:45:43 ID:???]
まずはそれを試してみてください

210 名前:nobodyさん [2007/10/06(土) 17:50:21 ID:kTx5Crj6]
ためしたけど、駄目でした。
\\\ってかいたら一個認識した。
でも\\って連続する文字列は、\\\\\\だと駄目だった。

検索に使ってるエディタは、UnEditorです

211 名前:nobodyさん [2007/10/06(土) 18:29:58 ID:C0xnGICK]
>>210
「\\\\」 というエスケープシーケンスが解釈されて文字列 「\\」 になり、 文字列 「\\」 が正規表現として解釈されて 「\」 を表すと見た。
その推測からすると、 「\\」 を表すには 「\\\\\\\\」 と打てばよい。

212 名前:nobodyさん [2007/10/06(土) 18:34:59 ID:kTx5Crj6]
>>211
なんという\
いけました。ありがとうございます。



213 名前:nobodyさん [2007/10/07(日) 17:23:56 ID:bdyGFUK8]
半角英数文字だと>>205の方法でOKなんすですが、日本語の文字列の場合、エンコードする必要があるので
>>206のようにしなければならないわけですね。今、気がつきましたよ。


214 名前:nobodyさん mailto:sage [2007/10/25(木) 15:30:25 ID:???]
phpで、変数にファイル名を入れて処理したいんですが
正規表現で文字制限をかける場合どのように書けばよいでしょうか?

日本語を含まなければ簡単そうですが、、、、



215 名前:nobodyさん mailto:sage [2007/10/25(木) 16:34:35 ID:???]
>>214
どゆこと?どんな制限をかけたい?

216 名前:nobodyさん mailto:sage [2007/10/27(土) 01:42:21 ID:???]
>>214
つマルチバイト

217 名前:nobodyさん mailto:sage [2007/11/05(月) 12:34:21 ID:???]
(愛うえお) [下記kuけこ] saし素せそ [07.07.07]
↑の様にファイルに名前をつけているのですが、これを下のようにリネームしたいのです。
(愛うえお) [07.07.07] [下記kuけこ] saし素せそ

[07.07.07]は日付です。2006/10/15なら[06.10.15]となります。
正規表現でどのように表現したら一括変換できるでしょうか?
どなたか御教示ください。

218 名前:nobodyさん [2007/11/05(月) 12:38:12 ID:EztAcqYR]
もしスレ違いでしたら案内していただけると助かります

219 名前:nobodyさん mailto:sage [2007/11/05(月) 12:47:34 ID:???]
>>217
まずは >>1 の二項目。

220 名前:217 [2007/11/05(月) 13:09:25 ID:EztAcqYR]
>>219
失礼しましたPerl5です。
www.hi-ho.ne.jp/~babaq/bregexp.htmlのDLLを使って
Nameryでリネームするつもりです。

的外れなレスだったらすみません


221 名前:nobodyさん mailto:sage [2007/11/05(月) 13:59:05 ID:???]
「連続置換・マクロ」にチェックして、こんなんでどう?

s/^(\(.+?\))( \[.+?\] .+?)( \[.+?\])/\1\3\2/

空白の処理とか適当なので、あとは自分で調べていろいろいじってみてちょ。

222 名前:nobodyさん [2007/11/05(月) 14:37:50 ID:EztAcqYR]
>>221
バッチリできました!ありがとうございました
しかし依頼するカタチを間違えていましたorz
gomennnasaigomennnasaigomennnasai

(愛うえお) [07.07.07] [下記kuけこ] saし素せそ
↑ではなく↓にするにはどうすれば・・・
(愛うえお) [下記kuけこ] [07.07.07] saし素せそ

223 名前:nobodyさん [2007/11/05(月) 14:41:33 ID:EztAcqYR]
間違えた>>222は無視してください

はぁゆとりすぎて面目ない

224 名前:nobodyさん [2007/11/12(月) 05:47:51 ID:Kg6xKnVX]
「あいうえおABC+F481ABC+F485かきくけこABC+F7A5さしすせそABC+F3F0ABC+F39EたちつてとABC+F65AなにぬねのABC+F485ABC+F7A5はひふへほABC+F7A5ABC+F39Eまみむめも」

上記の中に、「ABC+16進数x2回」がいくつ含まれているかをPHPの正規表現で表すにはどうかけばよろしいでしょうか?
ご鞭撻よろしくお願いいたします。




225 名前:nobodyさん mailto:sage [2007/11/12(月) 10:41:44 ID:???]
>>224
正規表現はいまひとつなのでもっと上手いやり方があるかもしれないが・・・
$input_str = "あいうえおABC+F481ABC+F485かきくけこABC+F7A5さしすせそABC+F3F0ABC+F39EたちつてとABC+F65AなにぬねのABC+F485ABC+F7A5はひふへほABC+F7A5ABC+F39Eまみむめも";
echo preg_match_all("/ABC\+[A-F\d]{4}/",$input_str,$out_ary);
※$out_aryは無いとエラーになるので消さないで


226 名前:nobodyさん [2007/11/13(火) 16:45:36 ID:KDxCSN/c]
質問です

PHPスクリプトでpreg_match("/^[^@]+@[^.]+\..+/", $superunkoman))
という正規表現があったのですが

^[^@]+   ←最初の文字が@以外の文字の一回以上の繰り返し
@      ←で、@が入り
[^.]     ←この部分が理解できません。

教えてください

227 名前:nobodyさん mailto:sage [2007/11/13(火) 17:15:59 ID:???]
>>226
ドット以外の文字列が1つ以上
hoge@.ドメイン.ne.jp
だとか画駄目ってことじゃないの?

228 名前:nobodyさん mailto:sage [2007/11/13(火) 17:39:32 ID:???]
>>227
ありがとうございました。そのとおりですね

229 名前:nobodyさん mailto:sage [2007/11/13(火) 22:44:37 ID:???]
質問です
phpスクリプトで

$str = ereg_replace(

"(https?|ftp)(://[[:alnum:]\+\$\;\?\.%,!#~*/:@&=_-]+)",

"<a href=\"\\1\\2\">\\1\\2</a>",

$str);

この正規表現の(://[[:alnum:]\+\$\;\?\.%,!#~*/:@&=_-]+)の部分とhref=\"\\1\\2\">\\1\\2</a>この部分は
何を表しているのか教えてくれませんか?

230 名前:nobodyさん [2007/11/14(水) 12:22:47 ID:E8xVrSo0]
あげわすれ

231 名前:nobodyさん mailto:sage [2007/11/14(水) 13:37:57 ID:???]
>>230
次回からはまずマニュアル嫁

PHPマニュアルより引用
string ereg_replace ( string pattern, string replacement, string string )
pattern の中に括弧でくくられた部分 文字列が含まれている場合、
replacement の中に \\数字 のような部分文字列を埋め込むことも
できます。この部分は、 「数字」番目の括弧でくくられた部分文字列に
マッチする文字列に 置き換えられます。また、\\0 は文字列全体を
指します。9 個までの部分文字列を使うことができます。括弧は
入れ子になっていても構いません。この場合は開き括弧 '(' が
最大 9 個まで使用可能です。


232 名前:nobodyさん [2007/11/23(金) 11:29:24 ID:OIbrK2sw]
正規表現を先輩から教えてもらったのですが、
文字列 [全ての文字] を 正規表現 [[]([^\]]+)] で 全ての文字 を取り出
すことができますが、
文字列 {全ての文字} で 全ての文字 を取り出す正規表現を教えてください。

233 名前:nobodyさん mailto:sage [2007/11/23(金) 15:30:11 ID:???]
>>5

234 名前:nobodyさん [2007/11/23(金) 20:53:35 ID:tvqFA7ba]
それは無理ですよ
すべての文字
を取り出す事は



235 名前:nobodyさん [2007/11/27(火) 18:05:34 ID:fIXcwnBh]
Dカップ以上の25歳以下で抽出したいです
PHP5です

236 名前:nobodyさん mailto:sage [2007/11/27(火) 19:15:14 ID:???]
[D-Z]カップ.*(1?[0-9]|2[0-5])歳

237 名前:nobodyさん [2007/11/28(水) 13:29:18 ID:fpWBgokp]
PHPで正規表現であれやこれやと苦戦してます。
で、正規表現チェッカー
 ttp://www.asterworld.com/ja/soft/regexchk.html
 という物をみつけて、こりゃ便利だ!と思ってたのですが
作成した正規表現を preg_replace に設定してもマッチしてくれません。
そんなに方言があるとも思えないのですが...

C#2005の正規表現のようなのですがPerlの正規表現と何がちがうのでしょうか。
C#2005の正規表現をPerlの正規表現に変更するには無理なのでしょうか。
Perlの正規表現を作成するようなソフトはあるのでしょうか?

恐れ入りますがどなたか教えてください 頭がゴチャゴチャしてきて..

238 名前:nobodyさん mailto:sage [2007/11/28(水) 15:10:44 ID:???]
もっとかなり基本的なところで勘違いしているんではないかと想像。
まずは、これ以上ないってくらい単純な正規表現で挙動を比較してみて、
そこから順次複雑な正規表現にしていって差異を見てみては。

239 名前:237 mailto:sage [2007/11/28(水) 15:41:05 ID:???]
ネットで調べても、どの言語の正規表現なのか今ひとつ判らないので
取り合えずアマゾンで本を注文しました。
言語ごとの差が判るようなものがあれば...


240 名前:238 mailto:sage [2007/11/28(水) 15:48:56 ID:???]
C# なら .NET なんだろうけど、「詳説 正規表現 (第2版)」には差異などが載ってる。
それで、ぱっと見で、基本的なところは Perl と .NET とで大した差は無いと思う。

241 名前:237 mailto:sage [2007/11/29(木) 13:36:57 ID:???]
「正規表現の達人」って本を手にして今、読んでますが、
お昼食べた後なんで眠くて眠くて フワァァ(/ 0 ̄)~゜
がんばってみます。。

242 名前:nobodyさん mailto:sage [2007/12/11(火) 20:35:33 ID:???]
すみません、ヘルプをお願いします。
PHPにて、特定の画像ファイル名を持つ<IMG>タグを抽出するという正規表現を作りたいのですが
上手く行かなくて困っております。

どなたか、お助けください。。。

243 名前:nobodyさん mailto:sage [2007/12/12(水) 01:18:37 ID:???]
>>242
もちっとくわしく。src属性以外に属性をもつのかとか。
多分alt属性がついていそうだけど。

preg_match('/<img .*?src=(["¥'])特定のファイル名を表す正規表現¥¥1 .*?>/', src);

とかか。今適当に作ったのでうまく動くかどうかはわからんけど

244 名前:nobodyさん [2007/12/19(水) 16:38:31 ID:H15tWjcK]
PHPのpreg_replaceなんですが、おたたすけ願います。
特定の文字列で囲まれた文字列を変換しない正規表現を教えてください。
たとえば
preg_replace("/aaa/", "[\1]", "aaa aaa aaa aaa aaa")
だと結果は "[aaa] [aaa] [aaa] [aaa] [aaa]" になりますが
preg_replace("/aaa/", "[\1]", "aaa{{{aaa aaa aaa}}}aaa")
となっていたときに
"[aaa]{{{aaa aaa aaa}}}[aaa]" という結果を取得したいんですが
思うように出来ません。

答えを直接出なくてもいいのでヒントだけでも教えてください。




245 名前:nobodyさん mailto:sage [2007/12/19(水) 18:16:44 ID:???]
>>244
後読み表明は量指定子を含められないから、もしpreg_replaceだけでやろうとするなら、
それ以外の部分を食わせておいて置き直すという、やや気持ち悪いことになると思う。

例えばこんなふうに
preg_replace('/(.*?(?:\\Q{{{\\E.*?\\Q}}}\\E.*?)*)(aaa)/', '$1[$2]', "aaa{{{aaa aaa aaa}}}aaa");

分解してから対象の部分だけ処理する等の方法も検討した方が宜しいかと。

246 名前:nobodyさん mailto:sage [2007/12/19(水) 18:44:19 ID:???]
大田区ホームページ:職員の不祥事について(処分の公表)
www.city.ota.tokyo.jp/oshirase/mokutekibetsu/other/fusyouji_syobun/index.html

当区職員が傷害の容疑で逮捕されるという事件につきましては、新聞等での報道やホームーページで公表したところですが、今回、事実関係が明らかになり、以下のとおり懲戒処分を行いましたので公表いたします。
 区民の皆様の信頼を裏切ることとなり、誠に申し訳ありません。あらためて、お詫びいたします。

懲戒処分とは
 職員が一定の義務違反を犯した場合に、公務の規律と秩序を維持することを目的として、その責任を追及するために制裁として行う処分です。
 大田区では懲戒処分の公表基準に基づき、免職処分をした場合や特に区民の関心が大きい事案又は社会的影響が大きい事案について、個別の懲戒処分を公表します。
(懲戒処分の制度の詳細は、大田区人事白書をご参照ください。)

処分発令日
 平成19年12月19日

被処分者氏名
 建築調整課 吉原 幸光

処分の内容
 停職3月

処分の理由
 一般非行関係(法令に違反し、全体の奉仕者たるにふさわしくない非行があったため)

事件の概要
 この職員は、平成19年11月16日(金曜日)、勤務時間終了後、東神奈川駅周辺で飲食した後、帰宅途中のJR京浜東北線川崎―蒲田間の電車内において、乗客男性に全治4週間の怪我を負わせる暴行を働き、傷害の容疑により蒲田警察署に現行犯逮捕されました。
 同職員は、東京簡易裁判所に起訴され、罰金刑を申し渡されています。

247 名前:nobodyさん [2007/12/22(土) 08:43:52 ID:KKfYoqPi]
すみません、教えてください。
PHPで携帯電話に文字列を表示する際に、
電話番号の部分をteltoリンクにしたいと思い以下のように書きました。
$bodySTR = preg_replace('/([-0123456789]+)/', '<a href="tel:\\1">\\1</a>',$bodySTR);

当然ながらこれだと、「100円」や「〒123-4567」にも反応してしまいます。

そこで、
「03-1234-5678」「090-1234-5678」「03−1234−5678」等にマッチして
「100」や「123-4567」にはマッチしない正規表現は可能でしょうか?


248 名前:nobodyさん mailto:sage [2007/12/22(土) 14:06:28 ID:???]
可能です

249 名前:nobodyさん mailto:sage [2007/12/22(土) 16:17:35 ID:???]
/(0¥d+-¥d{1,4}-¥d{4})/
でどうよ

250 名前:nobodyさん [2007/12/22(土) 17:39:05 ID:6MoMAQ1+]
perlの正規表現について質問です。
>>244の方と同じ様なものなのですが

"test <a href="test.jp"> test"
の様な文字列があった場合、タグ内のtestは変更せずに
"[test]<a href="test.jp">[test]"
という形にしたいのですが、どのようにすれば宜しいでしょうか。

一度置換した後、<>タグ内の物は[]を外す方法も考えてはみたのですが、
思うように動作させる事が出来ず。ご教授の程、宜しくお願い致します。


251 名前:nobodyさん mailto:sage [2007/12/22(土) 17:52:18 ID:???]
s/(<.*?>|test)/$1?$1:"[$2]"/ges

252 名前:250 mailto:sage [2007/12/22(土) 18:04:13 ID:???]
>>251
なるほど、どうも有難う御座いました!

253 名前:nobodyさん [2008/01/14(月) 12:16:38 ID:6AXqvVgD]
時間(13:00:00〜18:00:00)までを正規表現であらわしたいのですが、

1[3-8]:[0-5][0-9]:[0-5][0-9]

という感じに今なっています
誰が見てもわかりやすいしこれでもいいのですが、もっと短い書き方はないものでしょうか?

[0-5][0-9]ここが反復なので、([0-5][0-9]:?){2}とか思いつくのですが、
これだと最後にコロンが入っててもマッチしてしまうので回避できるような書き方はないものかなぁと。

254 名前:nobodyさん mailto:sage [2008/01/14(月) 13:51:53 ID:???]
1[3-8](?::[0-5]\d){2}



255 名前:nobodyさん [2008/01/15(火) 02:35:00 ID:HyHnFj45]

私が小学生の頃、
日本中でノストラダムスの予言が大流行していた。
「1999年の7月に人類は滅亡する!」
という例のお騒がせ終末予言である。

大人になって社会に出て働きだして、
あくせくと忙しく日々を過ごしながら、
1999年は、
ありふれた日常の中であっさりと過ぎていった。
人類は滅ばなかった。

これからここで、
1999年に起こるかもしれなかった人類の壊滅的破局を、
誰にも知られずにこっそりと回避させた人たちがいた...
という設定で、
荒唐無稽なストーリーを描いてみたい。
無論、100%完全なフィクションである。

www5.diary.ne.jp/logdisp.cgi?user=532063&log=200705


256 名前:nobodyさん [2008/01/20(日) 11:20:53 ID:TPbCvsXG]
/([^>|\+|\s]+)\s*([>|\+]?)\s*/g

この正規表現はどういうことでしょう?
何にマッチさせようとしているのでしょうか。
JavaScriptです。

257 名前:nobodyさん mailto:sage [2008/01/20(日) 11:37:26 ID:???]
[]の中で|を使ってOR条件にしてるから書いた人は勘違いしてる

258 名前:nobodyさん [2008/01/20(日) 12:50:55 ID:TPbCvsXG]
本来なにをしたかったんでしょうか・・・。

259 名前:nobodyさん mailto:sage [2008/01/21(月) 16:00:34 ID:???]
PHPの正規表現についての質問です。
2chのdatを各要素毎にキャプチャしたいのですが、

preg_math_all('/((.*)<>)*/', $dat, $match);

と書いて実行すると全体が丸々$matchへ格納されます。
$datへは「 要素1<>要素2<>要素3<>要素4<>要素5 」という形式のデータが入っており要素5は1行目にのみ存在します。
また、各要素は空欄の場合もあります。

初歩的な質問で申し訳ありませんが、よろしくお願いします。

260 名前:nobodyさん mailto:sage [2008/01/21(月) 16:01:39 ID:???]
>>258
こちとらお前さんにそれを聞きてえぐらいだよ。

261 名前:nobodyさん mailto:sage [2008/01/21(月) 16:03:38 ID:???]
>>259
preg_split で "<>" で配列にばらした方が扱いやすいかも。

262 名前:259 mailto:sage [2008/01/21(月) 16:15:53 ID:???]
>>261
レスありがとうございます。
確かにphpには要素を分解する為の便利な関数が始めから用意されておりますが、今回はあえてpreg_matchを用いて自身で分解してみたく思います。
自分にはハードルが高い気もするので、手始めに要素5だけを取り出そうと挑戦してみたのですが、

/<>(.+)$/ と書くと要素3<>要素4<>要素5がキャプチャされてしまいます。
やはり当方の正規表現に対する解釈が根本的に間違っているのでしょうか。

連投になり大変申し訳ないのですが、こちらの質問へのみご回答お願いいたします。
>>259は回答を得ましても自分には理解の範疇を超えていると判断しましたので)

263 名前:nobodyさん mailto:sage [2008/01/21(月) 19:42:35 ID:???]
[^<>]

264 名前:259 mailto:sage [2008/01/21(月) 20:27:24 ID:???]
自己解決しました



265 名前:nobodyさん mailto:sage [2008/01/21(月) 22:14:14 ID:???]
>>264
どう解決したかくらいは書いてもバチは当たらなくってよ。

266 名前:nobodyさん mailto:sage [2008/01/30(水) 11:50:28 ID:???]
perlのgrepで大文字小文字の区別をつけて検索したいです。
@hitlist = grep(/$search_word/i, @search_list);
これを、
@hitlist = grep(/$search_word/$serch_option, @search_list);
($serch_optionにはiやgを事前に設定)
こんな感じにしたいのですが、なんかいい案はありますか?
if文で分岐させるしかないですか?

267 名前:nobodyさん mailto:sage [2008/01/30(水) 13:19:43 ID:???]
大小文字区別つけて検索したいならオプションなしで固定でいいでしょ
そこでgオプション使うケースなんてないでしょ

268 名前:nobodyさん mailto:sage [2008/01/30(水) 16:28:40 ID:???]
>>266
質問が要領を得てないんだろうけど、
大文字小文字区別つけるかつけないかを切り替えたい、って話ではないかと。

どうすれば良いのかは知らないけど。

269 名前:266 mailto:sage [2008/01/30(水) 17:01:36 ID:???]
質問の要領が悪くて申し訳ありません。
正規表現のオプションをうまいこと制御できないかなと思いまして。
特に大文字小文字にこだわってるわけではないです。

270 名前:nobodyさん mailto:sage [2008/01/31(木) 03:02:38 ID:???]
>>269

大小文字の違いを無視して検索したいときに、パターンの先頭に (?i) 埋めときゃいい。

$pat = ($icase ? "(?i)" : "") . $search_word;
@hitlist = grep /$pat/, @search_list; 

とか

 


271 名前:nobodyさん mailto:sage [2008/01/31(木) 15:56:15 ID:???]
proxomitron の正規表現(?)が独自過ぎて、イライラしてくるんだが…

272 名前:nobodyさん [2008/02/25(月) 06:25:28 ID:PeKKba69]
2008-03 発売(予定)
「詳説 正規表現 第3版」 (Jeffrey E.F. Friedl 著 / 長尾高弘 訳)
ISBN 978-4-87311-359-3 定価 5,040円


273 名前:nobodyさん mailto:sage [2008/02/25(月) 12:38:04 ID:???]
高いね。今は Web で検索すればいいからねぇ…今更そんなの出して売れるのか。

274 名前:nobodyさん [2008/03/03(月) 22:23:33 ID:3LUWkmBW]
質問です!
PHP 5.2.5で、<br>以外のタグ削除を下記のようにしたところ

do {
$res = str_replace( $result_tag[1], '', $res );
} while ( mb_ereg( '(<[a/][^>]+>)', $res, $result_tag ) );

所々で効いてません。
前のサーバー(PHP 4.4.4)では正常に動いていました。
よろしく御指南ください。



275 名前:nobodyさん mailto:sage [2008/03/03(月) 23:15:55 ID:???]
>>274
初心者なので間違ってたらごめんなさい。

strip_tagsで、タグ除去と除外タグ指定が可能なはずです。

276 名前:nobodyさん mailto:sage [2008/03/04(火) 02:59:10 ID:???]
>>275
ありがとう!
思い通りになりました。
感謝です。

277 名前:nobodyさん mailto:sage [2008/03/05(水) 17:20:52 ID:???]
<a href="jumpres/read.cgi/newsplus/1204390523/1">>>1</a>
<a href="jumpres/read.cgi/dqnplus/22043905235/34">>>34</a>

スレッドまとめサイトの作成においてアンカーのタグだけ外したいのです
よろしくお願いします

278 名前:nobodyさん mailto:sage [2008/03/05(水) 18:23:39 ID:???]
>>277
実装言語が Perl と仮定して (Perl でなければ >>1 を読んでちょ) 、こんなかんじ?
s/<a href=".+?">(.+?)<\/a>/$1/g;

279 名前:nobodyさん mailto:sage [2008/03/05(水) 18:52:35 ID:???]
ありがとうございます

280 名前:nobodyさん mailto:sage [2008/03/16(日) 09:40:37 ID:???]
PHPの正規表現はバグバグなのでバージョンが違えば動作が変わる上に、難しいパターンになるとすぐ落ちる。

281 名前:nobodyさん mailto:sage [2008/03/16(日) 12:34:04 ID:???]
嘘書くなよ。

282 名前:nobodyさん mailto:sage [2008/03/16(日) 20:44:54 ID:???]
パターン修飾子にパラメータを渡して、長い文字列を検索するとボロボロ落ちる。常識だよ。

283 名前:nobodyさん mailto:sage [2008/03/17(月) 06:09:10 ID:???]
rubyのutf-8判定とかもやばそうだね

284 名前:nobodyさん mailto:sage [2008/03/17(月) 08:59:29 ID:???]
pcreのバグだね。
pcre-devのメーリングリストでもよんどいて損はない
ttp://www.exim.org/lurker/list/pcre-dev.ja.html



285 名前:nobodyさん [2008/03/19(水) 14:02:11 ID:6LA3ff9b]
初めて書き込みさせていただきます。

たとえば文字列が

{if(a)}
あああ
{if(b)}
いいい
{/if}
{/if}

と入れ子があったときはどのようにマッチさせたらいいでしょうか?
PHPでお願いします。

286 名前:nobodyさん mailto:sage [2008/03/19(水) 15:32:59 ID:???]
入れ子のマッチは正規表現 (だけ) では無理。と憶えておくと良いことがあるらしい。

287 名前:ジョアン [2008/03/28(金) 16:46:01 ID:FsCFbn2K]
perl の正規表現をPHPに書き直しているのですが、どうしてもわかりません。
Perlではマッチした前後を $` $' で取得できますがPHPではどうして取得するのでしょうか?


288 名前:nobodyさん mailto:sage [2008/03/29(土) 12:12:17 ID:???]
つマニュアル


289 名前:nobodyさん mailto:sage [2008/04/12(土) 11:24:34 ID:???]
見 れる

290 名前:nobodyさん mailto:sage [2008/04/13(日) 12:03:16 ID:???]
>>287
括弧

291 名前:nobodyさん mailto:sage [2008/04/26(土) 13:57:41 ID:???]
age

292 名前:nobodyさん mailto:sage [2008/05/04(日) 23:26:54 ID:???]
オライリーの正規表現三版
ほしいけど高いね

293 名前:nobodyさん mailto:sage [2008/05/19(月) 20:19:05 ID:???]
phpでhoge("****","*****");の****と*****を[1][2]に入れたいのですがどうすればいいでしょうか?

294 名前:nobodyさん mailto:AGE [2008/05/23(金) 20:19:21 ID:???]
AGE



295 名前:nobodyさん mailto:AGE [2008/05/23(金) 20:19:44 ID:???]
AGE

296 名前:nobodyさん [2008/06/05(木) 16:44:59 ID:0yepAPED]
すみません、FC2ブログのIPブロック条件のために、正規表現を書かなければならなくなりました。
そこで、合っているか教えてくださいー。

IP 61.78.0.0〜61.85.225.225 をブロックしたいのです。

このための表現として、私のつたない知識を使って書いてみると

^61\.[78-85]\.[0-9]+\.[0-9]+

なのかなと思ってますが、あってますか?
どうぞよろしくお願いします。

297 名前:nobodyさん mailto:sage [2008/06/05(木) 17:25:51 ID:???]
^61\.(?:7[89]|8[0-5])\.

こうじゃないかな

298 名前:nobodyさん [2008/06/05(木) 18:12:26 ID:0yepAPED]
>>297
ありがとうございます。

^61\.[78-85]\. のところが、^61\.(?:7[89]|8[0-5])\.
って言う意味ですよね?
なるほど。78-85じゃダメなんですね。ありがとうございます!


299 名前:nobodyさん mailto:sage [2008/06/06(金) 03:25:44 ID:???]
これが一番わかりやすい。以上

^61\.(78|79|80|81|82|83|84|85)\..*


300 名前:nobodyさん mailto:sage [2008/06/08(日) 17:41:28 ID:???]
PHPで、1ページ分のHTMLのソースが$sに入っているとします。

ここで、この$sから特定のタグだけを削除したいのですが、うまくいきません。

例えば<meta 〜〜〜 />というタグが複数あったとして、これをすべて取り除いたソースを作りたいのです。

$s = eregi_replace("<meta.*?>", "", $s);

とやってみたのですが、$sが空になってしまうのです。

ご指南ください。

301 名前:nobodyさん mailto:sage [2008/06/08(日) 22:40:27 ID:???]
2過去ログぐらい嫁という言葉は一見突き放しているように見えて
その質問の答えはこのスレの中にあるよという、ヒントを出しているわけで
まぁ、ツンデレなわけです。

302 名前:nobodyさん mailto:sage [2008/06/09(月) 02:40:38 ID:???]
>>300
ereg は最短マッチの芸当はできない。
pregでもつかっとけ。


303 名前:nobodyさん mailto:sage [2008/06/09(月) 06:50:27 ID:???]
>>300
'<meta[^>]*>'

304 名前:nobodyさん mailto:sage [2008/06/09(月) 23:50:23 ID:???]
300です。

ありがとうございます!

そうなんです、最短マッチが動かないなぁと思っていて、まさかeregが
最短マッチできないとは思いませんでした。

pregでやって解決しました!!




305 名前:nobodyさん mailto:sage [2008/06/11(水) 15:58:44 ID:???]
300と似てるかもしれないのですが
<a href="aa">11</a><a href="bb">22</a> こういう文字列があるとき
11と22だけを取り出したいと思い
preg_match_all("/<a(.*)>(.*)<\/a>/", 元, $test)
とやってみたところ、取り出せたのが
href="aa">11</a><a href="bb"と22になってしまいました。
?をつけてみてもうまくいきませんでした。

意図したように取り出したい場合どのように記述すればいいのでしょうか?
使用している言語はphpです。

306 名前:nobodyさん mailto:sage [2008/06/11(水) 21:01:33 ID:???]
>>305
色々間違えてる。

まず、Aタグで囲んでる部分だけ抜き出すなら( )のペアは一個でいいはず。
次に?を使ってみたと言うが多分何か勘違いしてる。
300はわかってて最短マッチさせてるが305わかってないだろう?
*を?に置き換えたりしてないか?






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<179KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef