正規表現道場
at PHP
86:nobodyさん
07/05/10 19:57:43
php4.3.11です
---------------------------------
$str = <<< DOC_END
あああああ
いいいいい
<html_start>
ううううう
えええええ
<html_end>
おおおおお
DOC_END;
$pattern = "/<html_start>(.*)<html_end>/";
$replacement = 'aaaabbbb';
$res = preg_replace($pattern, $replacement, $str);
print_r($res);
---------------------------------
と出力してみましたが何も表示されませんでした。
ホントは「あああああいいいいいaaaabbbbおおおおお」と出て欲しかったのですが…。
最終的には<html_start><html_end>で囲まれた範囲に
PHPのhtmlspecialchars()やnl2br()関数を適用して出力したいです。
87:nobodyさん
07/05/10 20:35:51
>>86
> $pattern = "/<html_start>(.*)<html_end>/";
「 ^ や $ があるってことは正規表現って行単位?複数行の場合は?」とか思いながら
$pattern = "/<html_start>(.*)<html_end>/s";
にして試す。で、「s って何だよ、こんにゃろ」と思いながらマニュアルの「パターン修飾子」のとこを読む。
うちのPHP5さんでは元のコードでも「何も表示されない」にはならなかったな。
ブラウザ出力: あああああいいいいい うううううえええええ おおおおお
ソース: print_r($str) な感じ
88:nobodyさん
07/05/10 20:51:04
>>87
s修飾子で動作しました!ありがとうございます。
>「s って何だよ、こんにゃろ」と思いながらマニュアルの「パターン修飾子」のとこを読む。
関数のページばかりみて
URLリンク(jp.php.net)
URLリンク(jp.php.net)
のページの存在に気がつきませんでした…。
あとは関数を適用する方法を探してみますっ!
89:nobodyさん
07/05/10 21:18:19
案外この手の質問したい人もいるんだね
90:86
07/05/14 15:45:03
後方置換する時に関数かましたくマニュアル眺めてたら「e修飾子」をみつけたのですが
>>87の「S修飾子」と同時に使おうと
$pattern = "/(.*?)<html_start>(.*)<html_end>(.*?)/se";
$replacement = "'\\2''\\1''\\3'";
こんなコードを書いてみた所
Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING
Failed evaluating code:
といった感じで怒られます
修飾子2個は同時に使えないのでしょうか…?
91:86
07/05/14 17:55:10
>>86ですが
自分で見返してたらこれは既に正規表現でなくPHPの質問な気がしてきましたので該当スレに
移動しますです。
スレ違、申し訳ありませんでした。
92:nobodyさん
07/05/17 13:08:20
IPを正規表現でチェックしたいのですが
210.000.111.1〜210.000.111.255
215.100.000.1〜215.100.000.255
の2つに当てはまる場合、TRUE(int1)をかえすにはどうすればいいでしょうか?
以下のようにやってみたのですが他のIPでもint(1)がかえってきます。
preg_match('/^210\.000\.111\.([0-9]{2}|1[0-9]{2}|2[0-4][0-9]|25[0-5])$ || ^215\.100\.000\.([0-9]{2}|1[0-9]{2}|2[0-4][0-9]|25[0-5])$/', $_SERVER['REMOTE_ADDR'])
93:nobodyさん
07/05/17 13:53:20
>>92
正規表現で foo || bar みたいなのはないっしょ。
/^(210...(中略)...|215...(中略)...)$/ みたいな。
アドレスの範囲のチェックをするなら正規表現使わない方が良いと思うけどね。
94:おながいします
07/06/06 13:28:10 iKhV2zih
すみませんが、価格にマッチする正規表現を教えていただけないでしょうか。
例
\1,000,000,000
\12,345
\1,230
\200
\10
数字3つごとに、カンマが入り、先頭に円マーク(\)のくるものです。
判らないためググッたのですが、正規表現に関する本ばかり検索結果として出てきまして…。
95:おながいします
07/06/06 13:29:35 iKhV2zih
上の>>94ですが、使用言語はPHPです。
96:nobodyさん
07/06/06 13:41:59
それは、「\12,1232,32」みたいなのははじきたいの?
97:nobodyさん
07/06/06 13:49:54
「正規表現 カンマ」とかでぐぐってみると・・・
98:nobodyさん
07/06/06 14:54:17
>>98
穴だらけだけどこんなんのこと?
$hoge = "\1,000";
if(ereg(".*[0-9,\\]",$hoge)):
echo "ok";
else:
echo "ng";
endif;
99:nobodyさん
07/06/06 15:08:26
>>98
つ[ URLリンク(www.google.co.jp) ]
100:94
07/06/06 17:22:28
>>96 >>97 >>98 >>99
皆様、ありがとう御座いました。
「価格 正規表現」、「値段 正規表現」でググってました(汗)
101:nobodyさん
07/06/30 13:42:20
(?:pattern),および(?>=pattern)が認識されないエディタにおいて、
$obj->method();の「method」のみにマッチさせるにはどうすればいいでしょうか。
ちなみに(?=pattern)は使えます。
102:nobodyさん
07/07/09 23:51:58 jN4+J6ks
VB.NETで正規表現を書いています。
条件としては、「A0123」のように、先頭がアルファベットのAでその他が数字4桁という正規表現と、
「01234」のような数字5桁という二種類のどちらかにマッチする正規表現を作っています。
正規表現は苦手で困っています。
どなたかご教授下さい。
よろしくお願いします。
103:nobodyさん
07/07/10 01:52:51
>>012
[A\d]\d{4}
とか。
あと「教示」な。
104:nobodyさん
07/07/13 17:31:53 lsKPRG81
phpで文中の郵便番号の部分を置き換える正規表現を書いているのですが
電話番号(携帯など)も引っかかってしまいます
どのように直せばいいのでしょうか?
mb_ereg_replace('([0-90-9]{3}[\-−ー‐]+[0-90-9]{4}|[0-90-9]{7})',"郵便番号",$data)
105:nobodyさん
07/07/14 04:11:15
mb_ereg って戻り読み使えなかったんだっけ?
(\D)\d{3}-\d{4}(\d{3})?(?!\D) を \1郵便番号 で置換。でどう?
面倒くさいので全角数字とかハイフンの類は自分で調整して。
106:nobodyさん
07/07/20 05:15:36 wp5plGkY
$textにHTMLタグを含んだ文字列が入っていて、
<>外部の< > " をそれぞれ < > " に置換したい(<>内部はそのまま)
のです。以下のように、まず全ての<>"を置換し、HTMLタグの<>だけを
元に戻してみましたが、うまくいきません。どなたかご教授願います。
言語はあとでPHPでも同様のものを作成する予定ですが、今はPerlです。
$text = "tt\"tt<3bbb\nst<a gg&tg;gg href=\"aaa\">bbb<\n";
print "before=\n";
print $text."\n\n";
$text =~ s/</</g; $text =~ s/>/>/g; $text =~ s/\"/"/g;
$text =~ s/<([^(>)]*)>/<$1>/g;
while ($text =~ /<([^>]*)\"\;([^>]*)>/) {
$text =~ s/<([^>]*)\"\;([^>]*)>/<$1\"$2>/g;
}
print "after=\n";
print $text."\n";
↓このように置換されることを想定しています。
tt"tt<3bbb
st<a gg&tg;gg href="aaa">bbb<
107:nobodyさん
07/07/20 05:26:31
久しぶりに実体参照の地雷を踏みまくってる投稿を見た。
108:106
07/07/20 05:38:28 wp5plGkY
「このように置換されることを想定しています。 」の部分で
実体参照の部分がそのまま表示されてしまったので全角で修正します。
よろしくお願いします。
tt&quot;tt&lt;3bbb
st<a gg&tg;gg href="aaa">bbb&lt;
109:nobodyさん
07/07/20 08:47:21
何がやりたいのかさっぱりだ。
どこまでがタグか解析してタグ以外のタグ文字を実体参照化したいということ?
それ元のテキストを生成してる時点で何か間違ってるだろ
110:nobodyさん
07/07/20 12:57:58
何かの内側と外側を判定するのは結構面倒だよなぁ。こないだ<a 〜>から</a>までの
間だけを操作しようと3分考えて、ネストがありえることに気付いて挫折した。
111:nobodyさん
07/07/20 13:08:08
って>>106読んでなかった。>>109に同感。
それじゃあどこからどこまで切れば良いのかわからない。
xxx<abcd<ddeg<eee<g<fhg>degh><qq>zzz
の時、何が保証されていて、どこからどこまでをタグと見なせばいいの。
112:106
07/07/21 01:21:27 VYWED9XA
ごめんなさい。説明が足りませんでした。
掲示板で投稿された書き込みに対して、上記のような処理をしたいと考えています。
>>106のスクリプトは処理を掲示板に組み込む前に処理の部分だけテストするために作成したものです。
$textは書き込み内容と想定しています。
一番内側の<>をタグと見なしたいです。
xxx<abcd<ddeg<eee<g<fhg>degh><qq>zzz
この場合ですと、<fhg>と<qq>をタグとみなし、他は実体参照化したいと考えています。
113:nobodyさん
07/07/21 02:45:37
つまりタグの定義は
<[^>]*>
ということですね。
114:106
07/07/21 08:55:35 VYWED9XA
>>113
左様です。
115:nobodyさん
07/07/21 09:30:47
違うだろ、<[^<]*?>だろ、112の定義なら。
それ以前に106はエスケープ、エンコード、サニタイズ処理で何か間違ってる
use HTML::Entities;
$tag_re = qr/<[^<]*?>/;
$text =~ s/($tag_re)|(.)/$1||encode_entities($2)/eg;
print $text;
116:nobodyさん
07/07/21 13:10:23 7GHIEbSO
PHPで
URLリンク(localhost)
URLリンク(localhost)
URLリンク(test.com)
から
/index.htm
/index.htm
/index.htm
これを出力したい場合
ereg_replace('^https?://(localhost|test.com)' ,'' ,$line);
これでは間違ってるでしょうか?
どなたか教えて下さい。お願いします
117:たけもー
07/07/27 23:18:07 boPeFaxI
PHPです。
就職率−6月(この全角−を)半角に変えたいです。
$a = ereg_replace("[−]", "-", $a);
どうしたらいいでしょうか?
118:nobodyさん
07/07/28 02:31:21 k6nESKD8
ereg_* はマルチバイト文字(全角文字)に対応していない。
mb_ereg_* か preg_* を使うといい。
ただしpreg_*のほうはUTF-8でないとダメだったと思う。
119:たけもー
07/07/28 15:25:04 9w1k0jgB
PHPです。
就職率−6月(この全角−を)半角に変えたいです。
$a = mb_ereg_replace("[−]", "-", $a);
mb_でもだめでした。
どうしたらいいでしょうか?
120:nobodyさん
07/07/28 15:37:30
文字コードとかどうなっとるん?
121:たけもー
07/07/28 16:32:13 9w1k0jgB
文字コードの意味がいまいちわからないんです、テキストディタは
Shift-JISです、
122:名無しさん@そうだ選挙に行こう
07/07/29 01:50:43
PHPは本職じゃないんで良く知らんのだが、PHP自体がデフォルトの
エンコーディングを持っていて、何も指定しないとそれ使うはずだから、
自分がSJIS指定しているつもりでも、そうでない可能性があるってこと。
<?php
echo mb_internal_encoding() . "\n";
echo mb_regex_encoding() . "\n";
$v = "就職率−6月";
mb_regex_encoding("sjis");
echo mb_regex_encoding() . "\n";
$v = mb_ereg_replace("[−]", "-", $v);
echo $v;
こんなんで置換はできたっぽい。
echo しているのは確認のためなんで気にしないでいい。
いずれにしろ mb_regex_encodingで設定しないとダメだった。
123:たけもー
07/07/30 07:40:51 DqqhKvmn
解決いたしましたw
ありがとうございますw
124:たけもー
07/07/30 21:23:25 TD8Lc2Id
解決したはずが・・・
file(http://)で取得した文字列がUTF-8で
UTF-8からsjisにしたら全角マイナスが消えてしまいます。
消えて、改行されています・・・
テストソースですので
mb_ereg_replace
などで置き換えなどは一切してません。
どうしてでしょうか?
125:nobodyさん
07/07/30 23:11:52
原因知ってるけど正規表現に何の関係が
126:nobodyさん
07/07/30 23:54:01
>>125
誘導してやってくれ。(PHPわからん)
127:nobodyさん
07/07/31 01:38:26
ちなみにPerlも同じだから。正規表現は関係ないけどね。
128:nobodyさん
07/07/31 02:17:21
>>126
変換に使っている変換表の問題(なので正規表現の問題じゃない)。
PHPで使っている変換表の素性はわからん。
ぐぐれば「波ダッシュ問題」あたりとならんで見つかると思うけど
どっかのスレで話題になったか、これ?
URLリンク(www.google.com)
ま、がんがって調べてくれ >たけもー
129:nobodyさん
07/07/31 02:24:36
△▲ WebProg 初心者の質問 Part15 ▼▽
スレリンク(php板)
ここ、かなあ。
つーか、元の要件でもこのスレと無関係な str_replace で済むじゃん。
130:nobodyさん
07/08/10 10:21:28 dRcI3VfS
PHPとか全く知らない者なのですが、利用しているBBSのアクセス禁止設定が
正規表現で指定しろと言うんです。勿論正規表現は知らないどころか初めて耳にしました。
a00abcd1.kngwnt01.ap.so-net.ne.jp
123.123.123.123.ap.yournet.ne.jp
前者のIPが何らかのコード1つに変換されるタイプと後者のIPがそのまま出るタイプの
リモホをそれぞれホスト単位で全て「正規表現で指定」するとずばりどういう表記になるのでしょう?
131:nobodyさん
07/08/10 10:29:11
ホスト数が少ないなら列挙すりゃいいんじゃね。
(xxx.example1.jp|xxx.example2.jp|xxx.example3.jp)
132:nobodyさん
07/08/10 13:25:55
ありがとうございます
なるほど…ひとつをピンポイントで指定する場合は
正規表現というのを使わなくても良いという事なのでしょうか…
130の前者だけなら
a00abcd1.kngwnt01.ap.so-net.ne.jp
と、そのまま指定、両方の二つなら
(a00abcd1.kngwnt01.ap.so-net.ne.jp|123.123.123.123.ap.yournet.ne.jp)
となるんでしょうか?
133:nobodyさん
07/08/10 18:16:54
>>132
そのものずばりというのも正規表現の一種だよ。
a00abcd1.kngwnt01.ap.so-net.ne.jp
というのも正規表現だよ。
あと細かい話を言うと、ピリオド「.」は正規表現において任意の1文字にマッチするメタ文字なので、
ピリオドそのものにマッチさせたい(他の文字にはマッチさせたくない)ときには「.」の代わりに「¥.」を使う。
a00abcd1¥.kngwnt01¥.ap.so-net¥.ne¥.jp
んでも、この場合はそこまでしなくても問題はなさそうだけどね。
134:nobodyさん
07/08/10 22:15:38
>>133
どうもありがとうございました!大変参考になりました
というかこれを機会にちょっと勉強してみます…
ありがとうございました
135:nobodyさん
07/08/11 01:30:22 2Sf3pkhN
.*
と
.+
は、完全に同じ意味と考えてもOKですか?
それとも、何か挙動が変わってくることはありえますか?
136:nobodyさん
07/08/11 02:02:02
.+ 1文字以上の任意の文字列
.* 0文字以上の任意の文字列
で最初から違ってましたね
ナハハ…
137: ◆xIL6SyuS5U
07/08/11 02:39:04
a
138:nobodyさん
07/08/14 22:01:22
perl互換のPHP正規表現を勉強し始めたのですが、
3.3以上に該当するの文字列っていうのは、できますでしょうか?
たとえば3.3.4や3.5、9.0などです。
バージョンのようなものです。
やはり数値型でないと難しいのでしょうか。
139:nobodyさん
07/08/14 22:20:59
バージョン番号文字列って数値型にしてもめんどくさいんだよね。
3.10.0 とかね、真面目にやろうとすると、
'.' で split して、上の桁から順に整数値として比較していく、
みたいにやらないといけなかったりして。
140:nobodyさん
07/08/14 23:03:21
>>139
3.3以上っていう決まりだけならどうかけますかね?
3.2があてはまらなければ大丈夫なんですが。
141:nobodyさん
07/08/15 00:01:44
/\A(?:(?:[1-9]\d+|[4-9])(?:\.(?:[1-9]\d*|0))*|3\.(?:[3-9](?:\.(?:[1-9]\d*|0))*))\z/
142:nobodyさん
07/08/15 00:28:29
3.10 も 3.20 も蹴っていいの?
143:141
07/08/15 01:17:11
うわボケてたアルよ。
/\A(?:(?:[1-9]\d+|[4-9])(?:\.(?:[1-9]\d*|0))*|3\.(?:(?:[1-9]\d+|[3-9])(?:\.(?:[1-9]\d*|0))*))\z/
144:nobodyさん
07/08/15 22:05:09
>>141
ありがとー!ちょっと見てみます!
>>142
厳密にどういった値があり得るのかも分からないのでそこまで細かくしなくてもいいかなという感じです。
バージョンというか、ユーザーエージェントの後によくついている数値なんですが。
145:nobodyさん
07/09/01 14:16:44 tMwZKBAJ
"*"をWebで調べると「直前の文字0回以上の繰り返しにマッチ」とでてくる。
UNIXで
% ls
a0/ a1/ a2/
のとき
% cd *1
ができるけど*は何の繰り返し???
*は何でもマッチと思っていたのは間違いですか???
146:nobodyさん
07/09/01 15:26:18 epTGamb+
>>145
Perl互換の正規表現では 「*」 は量指定子というものの一種でありまして、 文字、 文字クラス、 グループの直後に付き、
それらに0回以上の繰り返しという意味を持たせるのですが、 正規表現体系が違えば 「*」 が違うことを意味することもありましょう。
147:nobodyさん
07/09/01 15:34:18 epTGamb+
要するに、 正規表現体系が違えば記号の意味も異なるということです。
148:nobodyさん
07/09/01 15:58:40 tMwZKBAJ
>>146
>>147
理解しました。ありがとうございました。
149:nobodyさん
07/09/01 16:54:59 fGUplrri
[2ch公式広告]
一瞬、ハーバーライフと間違えるところだった。。
違うよ、コレは。
ヤフオク関連の最強情報
これを知らずして、ヤフオクで稼ぐことは出来ない。(キッパリ)
URLリンク(2ch2.net)
150:nobodyさん
07/09/02 03:27:50
>>145-148
待てw
151:nobodyさん
07/09/02 03:54:38
>>150
どっちも「それは正規表現じゃねえよ」からグダグダと書いても仕方ないから
待たせなくてよい。
152:nobodyさん
07/09/02 09:50:38 RtluGpKC
192.168.50.5 //OK
192.168.*.* //OK
1000.1000.1000.1000/OK
*.168.50.5 //NG
(\d+)(\.([*(\d+)])){3}
なぜこれでダメ?
153:nobodyさん
07/09/02 11:04:51 tGLa/mAn
>>150-151
正規表現とは文字列の集合を表現する手段でありますから、
ワイルドカードを用いた表現も正規表現の一種であります。
154:nobodyさん
07/09/02 11:20:25 tGLa/mAn
>>152
> (\d+)(\.([*(\d+)])){3}
これは数字があり、 その後ピリオドと 「*」、 「(」、 数字、 「)」、 「+」 のどれかの組が3回繰り返す文字列群の表現です。
> *.168.50.5
これは数字の後、 ピリオドと 「*」、 「(」、 数字、 「)」、 「+」 のどれかの組が2回しか繰り返していないので、
先ほどの正規表現にマッチしません。
155:nobodyさん
07/09/02 11:40:01 tGLa/mAn
いや、 待ってください。
> (\d+)(\.([*(\d+)])){3}
だと、
> 192.168.50.5
> 192.168.*.*
> 1000.1000.1000.1000
> *.168.50.5
のすべてにマッチしないはずです。 先ほど
> これは数字があり、 その後ピリオドと 「*」、 「(」、 数字、 「)」、 「+」 のどれかの組が3回繰り返す文字列群の表現です。
と申しましたが、 より正確には、
・ 数字が1つ以上あり、 その後ピリオドと 「*」、 「(」、 数字1つ、 「)」、 「+」 のどれかの組が3回繰り返す文字列群の表現
でありまして、
> 192.168.50.5
> 192.168.*.*
> 1000.1000.1000.1000
> *.168.50.5
のどれもそのような文字列ではないからです。
156:nobodyさん
07/09/02 12:28:15
\.
157:nobodyさん
07/09/02 13:10:37
どうせ1000がいやんって話なんだろうけど、0から255までの
数字だけがマッチする正規表現ってむずくね?
[0-9]|[12][0-2]?[0-9]|[12]?[34][0-9]|1?[5-9][0-9]|25[0-5]
とか
[0-9]|1[0-9][0-9]?|2[0-4]?[0-9]|[3-9][0-9]|25[0-5]
とか
158:nobodyさん
07/09/02 19:09:05
PHPのPerl互換の正規表現のことで質問です。
次のような文章があったとします。
左のは行番号で、実際の文章中にはありません。
01.<div>
02.text
03.<img>
04.</div>
05.
06.<div>
07.text1
08.text2
09.</div>
10.
11.<div>
12.hoge
13.<img>
14.</div>
ちなみにドットは改行にもマッチするようにしておきます。
これに対してパターン「<div>\n(.+)\n</div>」を最小マッチさせると、
サブパターンで02,03と07,08と12,13と17,18,19,20行目がそれぞれきちんとマッチしてくれるんですが、
今度は<img>を含むdivだけをマッチさせようとして、「<div>\n(.+\n<img>)\n<div>」で最小マッチをさせると、
02,03と07,08,09,10,11,12,13行目にマッチしてしまいます。
ここで02,03と12,13行目だけにマッチさせるにはどうすればいいのでしょうか?
いろいろ考えたのですがよくわかりません。
どなたかよろしくお願いします。
159:nobodyさん
07/09/02 19:35:53 /HflMMhV
↑
すいません
「02,03と07,08と12,13と17,18,19,20行目がそれぞれきちんとマッチしてくれる」は
02,03と07,08と12,13の間違いですね
160:nobodyさん
07/09/02 20:08:53
すいません自己解決しました
「<div>\n((?:[^<]|<(?!div))+\n<img>)\n<div>」
これでいけるんですね
161:nobodyさん
07/09/04 05:14:07 p30GnV0e
IPアドレスの正規表現についてやっぱりわからなかったです。
2オクテッド目以降は*が来てもOKとするにはどうすればよいでしょうか?
192.168.50.*
192.168.*.*
192.*.*.*
192.168.50.5
1000.1000.1000.1000
これらはすべてOKとします。
162:nobodyさん
07/09/04 09:42:52
>>161
> 2オクテッド目以降は*が来てもOKとするにはどうすればよいでしょうか?
それ先に言えよ!
どういう結果が欲しくて、どう書いたら、どうダメだったか、を具体的に書かんと。
あと、使用してる処理系 (言語やソフトウェア) も。
で、ダメだった正規表現中の [*(\d+)] だけど、
[] は「文字クラス」の正規表現なので、
>>154 の言っているように * ( 数字 + ) のいずれかの「文字」を表す。
「* または数字」を表現したいのであれば、 (\*|\d+) みたいにする。
ので、こうかな。
(\d+)(\.(\*|\d+)){3}
163:nobodyさん
07/09/04 11:21:03 /G1gxUUQ
$` (マッチした文字列の前にあるすべての文字列 )
↑これの使い方を教えてください。言語はPerlです。
164:nobodyさん
07/09/04 11:29:12
>>163
"hoge" =~ /og/;
print join(",", $`, $&, $'), "\n";
↑こんな感じで、この場合は "hoge" に対して "og" がマッチするので、
$`, $&, $' にはそれぞれ "og" の前の "h", "og", "og" の後ろの "e" が格納される。
165:nobodyさん
07/09/04 11:54:02 /G1gxUUQ
>>164
できました。ありがとうございます。
166:nobodyさん
07/09/09 01:04:12
***.com([0-9]もしくは[a-z]の文字が3つ並び、その後に.com)の表記方法を教えてください
167:nobodyさん
07/09/10 21:26:12 lrmAiBXN
>>166
Perl互換の正規表現だと
[0-9a-z]{3}\.com
168:nobodyさん
07/09/12 05:01:53
>>166
\w{3}\.com
169:nobodyさん
07/09/12 11:22:48 DkIOyoGe
>>168
それだと大文字とアンダースコアにもマッチしてしまいます。
170:nobodyさん
07/09/15 15:32:58
<title>ほげほげ</title>
の「ほげほげ」だけを抜き出すのにはどう表記すればいいのでしょうか?
171:nobodyさん
07/09/15 16:48:18
/<title>([^<]+)<\/title>/
172:nobodyさん
07/09/15 17:17:54
>>171
ありがとうございます。
173:nobodyさん
07/09/16 01:35:56 6P4HpCmY
PHP 4.4.7で
hoge
hage
123.txt
の中から 123 を抜き出したいんだけど
"/^(.+?).txt/"
だと当然
hoge
hage
123
がマッチしてしまう。
hoge や hage は任意の文字列で数字が入る可能性もあるのだけど、どうやって抽出したらいいんでしょう。
174:173
07/09/16 02:11:14
マッチした文字列を
strrev()
で逆順にして、今度は
txt. で再度マッチングさせたらとりあえず抽出できました。それをもう一度逆順に。
こんな力業じゃなくて他に方法があるんだろうな……。
175:nobodyさん
07/09/16 02:19:07
^^
176:nobodyさん
07/09/16 03:52:16 vOvwrq99
>>173
前後にデリミタ (「/」) が付いているという事はPerl互換の正規表現関数を使うのでありましょうが、
そうであれば 「.」 はs修飾子がない限り改行にマッチせず、 よって
/^(.+?).txt/
は
hoge
hage
123.txt
にマッチせず、 したがって
hoge
hage
123
がキャプチャされることはないはずです。
177:nobodyさん
07/09/16 12:32:40
>>173
まあとにかく「マッチしてしまう」とかいうそのコードを晒してみ。
178:nobodyさん
07/09/16 13:59:22 G/qusHMm
$bairitsu = 0.5;という風に$bairitsuに倍率を入れておいて
height:244pt を height:122pt…
height:244pt を height="150"に
といった具合にheight:●●ptやheight="●●"の数値部分を
$bairitsu倍して置換するにはどのようにすればいいですかね?
やろうとしてることは、エクセルで作ってHTMLで保存したものを、
A4サイズの用紙に合うようにHTMLの中にあるサイズ指定を変更したいです。
使用言語はPerlです。よろしくお願いします。
179:173
07/09/16 15:18:36 6P4HpCmY
>>175
それは……ヒント? それともAA?
>>176
失礼。パターンを行頭にしたり行末にしたり改行文字にしたりしてるうちにこんがらかってしまったみたい。
正確には
"/^(.+?).txt/"
でマッチしました。
>>177
コード的にはこんな感じ。
$string = "
hoge
hage
123.txt
";
preg_match("/^(.+?).txt/", $string, $matches);
preg_match("/txt.(.*?)\r/", strrev($matches[0]), $matches);
echo strrev($matches[1]);
// 結果 123
PHPも正規表現も初心者なので変な書き方してるかもだけど……。
180:173
07/09/16 15:27:38
あれ?正確にはも何も最初に書いたのであってるなあ。
なんで「マッチしてしまう」のだろう。
181:nobodyさん
07/09/16 21:38:24 YMkvDZNb
>>179
ああ、 改行コードをCRにしているのですね。
私は
> 「.」 はs修飾子がない限り改行にマッチせず
と申しましたが、 正確には 「LFにマッチせず」 でありまして、 CRにはマッチします。
普通はスクリプトの内部では文字列の改行コードをLFにするものですが、
何か理由があってCRにしているのですか。
182:nobodyさん
07/09/16 21:48:57 YMkvDZNb
改行コードがLFなら、 m修飾子を使うことにより 「^」 が行頭にマッチするようになるのです。
183:173
07/09/17 00:37:12 /5o1hJUZ
>>181
> と申しましたが、 正確には 「LFにマッチせず」 でありまして、 CRにはマッチします。
あー、そういう事なのか……。
勉強になります。
> 何か理由があってCRにしているのですか。
実はいつも決まった形式で入稿されるテキスト原稿を決まった形式のHTMLにするだけの仕事が定期で入ってくるんです。
で、毎回毎回コピペにつぐコピペで対応し続けるのもバカくさいので極力自動化しようと思い、PHPでシコシコ書いている次第。
そのプログラムに食わせるお客さんからの入稿原稿を元に作ってたのでCRになってました。
試しに改行コードをLFにしてm修飾子というのを試したらうまくいきました。
なるほどもらった原稿をLFに変換してから使えばいいわけだな。
ありがとーございました!
184:nobodyさん
07/09/17 01:05:58 T68tRmUw
あと1つ指摘しますと、 「.txt」 は 「\.txt」 にすべきですね。
185:173
07/09/17 15:37:44 /5o1hJUZ
> あと1つ指摘しますと、 「.txt」 は 「\.txt」 にすべきですね。
おーなるほど。ありがとうございます。
186:nobodyさん
07/09/18 14:10:13 hpuf++fz
Perlを使って、アフィリエイトのコードやJavaScriptなどを含むコメントタグがなぜか削除できません。
例)
<!--
コード
・
・
-->
HTMLタグは s/<.*?>//sg; とすれば削除できますが
なぜかコメントタグだけが残ってしまいます。
コメントタグの開始「<」と終了「>」以外の全ての文字列・記号・改行コードを削除したうえで
s/<>//g; としてみましたが削除することができません。
s/<//g;
s/>//g;
とするとなぜか削除できます。
うまく削除できる方法をご存知の方がいたら教えて下さい。
187:nobodyさん
07/09/18 16:31:55
前処理としてまず s/<!--.*?-->//gs やってみたら?
コメントタグのネストはないだろうし(JavaScriptとかで書き出してたら別だけど・・)
188:nobodyさん
07/09/19 07:54:55
>>187
レスどうもありがとう。
s/<!--.*?-->//gsでもなぜかうまくいかないので
コメント行が現れたらif文でスルーするようにしました。
189:nobodyさん
07/09/19 21:54:47
PHPで正規表現勉強したいんですが、オライリーのふくろう本を読めるでしょうか?
もちろん本人の技量にもよると思いますが、Perlをまったく知らない人間がという解釈でお願いします。
逆に文字列処理をしたいなら、Perlを一からやっとけみたいなのもありです。
190:nobodyさん
07/09/20 00:20:26
>>189
preg_.*系関数ならPerl互換なのでふくろう本の記述が使えると思う。
というかね、ふくろう本のキモは処理系にほとんど依存しない3章と4章で、
それ以外はおまけだ。熟読すべし。
191:nobodyさん
07/09/20 01:57:42
ありがとう。時期を見計らって購入するよ。第三版出るみたいだし
192:nobodyさん
07/09/20 02:42:28
>>191
え、日本語訳出るの?
193:nobodyさん
07/09/20 13:36:17 KlmMrt1+
<TD width="52" height="25" bordercolor="#CCCCCC" valign="middle">
<div align="center">F8FA</div>
</TD>
これの
「F8FA」の部分をpreg_match_all取得したいのですが、
'/<TD .*><div .*>(.*)</div><\/TD>/Ums'
としたのですが、何も取得されません。
どのように表記すれば良いのでしょうか?
194:nobodyさん
07/09/20 13:42:18
/<TD.*?><div.*?>(.*)?</div><\/TD>/
こんな感じ?
195:nobodyさん
07/09/20 13:44:34
試してないけどひとまずパッと見でおかしそうなのを直すとこう?
'/<TD .*>\s*<div .*>(.*)<\/div>\s*<\/TD>/Ums'
196:nobodyさん
07/09/20 17:00:54 SqIRO2nC
'#<TD(?:\s[^>]*)?>\s*<div(?:\s[^>]*)?>(.*)</div>\s*</TD>#ms'
197:nobodyさん
07/09/20 19:58:25
>>193
正規表現は二作出てるから次も一年たった今頃出るかなという予想込みだけど出なかったら出ないのもタイミングかなと。
198:nobodyさん
07/09/20 22:27:42
>>197
日本語でおk
199:nobodyさん
07/09/20 23:09:32
>>198
おk!=日本語
200:nobodyさん
07/09/21 00:43:48
>>191
ソースは?
201:nobodyさん
07/10/02 19:12:55 DsttFroa
PHPの正規表現でユーザーエージェント(IE限定)から
ブラウザバージョンとOSのバージョンを取得するため
以下を作成しました
preg_match('/Mozilla\/.*(MSIE [0-9\.]+);.*(Win[^;\)]+|Mac[^;\)]+).*/i', $lua, $match)
ほぼ間違いなく取得できるのですが唯一以下形式のエージェントのみ
失敗します
Mozilla/4.0 (compatible; MSIE 5.0; Windows 98; Yahoo! JAPAN Version Windows 95/NT CD-ROM Edition 1.0.; DigExt)
古いバージョンなので切り捨てても良いとは思うのですが悔しいので
どうすれば正しく取得できるか教えていただけないでしょうか?
上記の正規表現では
MSIE 5.0
Windows 95/NT CD-ROM Edition 1.0.
ほしいのは以下
MSIE 5.0
Windows 98
202:nobodyさん
07/10/02 19:26:37
m#(MSIE\D*[\d\.]+).*?((?:Win|Mac)\D+\d+)#
こんな風でどう?
203:nobodyさん
07/10/02 19:34:02 DsttFroa
>>202
ありがとうございます
おかげ様でできました
比較検証して勉強させてもらいます
204:nobodyさん
07/10/05 23:08:47 ivRnBDKk
質問です
$text = "第41条 [国会]は、[国権]の最高機関であつて、国の唯一の[立法機関]である。";
というテキストで[]でくくられた部分を検索エンジンに飛ばすためのリンクに書き換えるための置換処理を行いたいと考えています。
そこで下のように組んでみたところ
$text =~ s/\[(.*)\]/(<a href=\/http:\/\/foo.bar?query=\"$1\">$1<\/a>)/;
置換の対象となるカッコは行の先頭の[から行の最後の]までが対象となってしまい。上手く機能しません。
この置換処理はどうかけば、いいのでしょうか?
205:nobodyさん
07/10/06 00:06:57
>>204
* や + は、そのままだと最長の文字列でマッチしてしまうので、
最短マッチにするために .*? みたいにすると良い。
あと、繰り返し処理させるために、 g オプション (/.../g みたいな) を付けるよろし。
206:nobodyさん
07/10/06 00:07:46
$text=~ s#\[(.*?)\]#my$r=$1;(my$s=$1)=~s/([^\w ])/'%'.unpack('H2',$1)/ge;
$s=~tr/ /+/;'[<a href="URLリンク(foo.bar?query=)'.$s."\">$r</a>]"#ges;
こんな風でどう?
207:nobodyさん
07/10/06 00:35:40 1+GhnPpX
>>205-206
どちらも上手く機能しました。
奥が深いですね
208:nobodyさん
07/10/06 16:42:21 kTx5Crj6
普通の文字として\を表現するにはどうすればいいですか?
C言語風には、'\\'みたいなやつです
209:nobodyさん
07/10/06 17:45:43
まずはそれを試してみてください
210:nobodyさん
07/10/06 17:50:21 kTx5Crj6
ためしたけど、駄目でした。
\\\ってかいたら一個認識した。
でも\\って連続する文字列は、\\\\\\だと駄目だった。
謎
検索に使ってるエディタは、UnEditorです
211:nobodyさん
07/10/06 18:29:58 C0xnGICK
>>210
「\\\\」 というエスケープシーケンスが解釈されて文字列 「\\」 になり、 文字列 「\\」 が正規表現として解釈されて 「\」 を表すと見た。
その推測からすると、 「\\」 を表すには 「\\\\\\\\」 と打てばよい。
212:nobodyさん
07/10/06 18:34:59 kTx5Crj6
>>211
なんという\
いけました。ありがとうございます。
213:nobodyさん
07/10/07 17:23:56 bdyGFUK8
半角英数文字だと>>205の方法でOKなんすですが、日本語の文字列の場合、エンコードする必要があるので
>>206のようにしなければならないわけですね。今、気がつきましたよ。
214:nobodyさん
07/10/25 15:30:25
phpで、変数にファイル名を入れて処理したいんですが
正規表現で文字制限をかける場合どのように書けばよいでしょうか?
日本語を含まなければ簡単そうですが、、、、
215:nobodyさん
07/10/25 16:34:35
>>214
どゆこと?どんな制限をかけたい?
216:nobodyさん
07/10/27 01:42:21
>>214
つマルチバイト
217:nobodyさん
07/11/05 12:34:21
(愛うえお) [下記kuけこ] saし素せそ [07.07.07]
↑の様にファイルに名前をつけているのですが、これを下のようにリネームしたいのです。
(愛うえお) [07.07.07] [下記kuけこ] saし素せそ
[07.07.07]は日付です。2006/10/15なら[06.10.15]となります。
正規表現でどのように表現したら一括変換できるでしょうか?
どなたか御教示ください。
218:nobodyさん
07/11/05 12:38:12 EztAcqYR
もしスレ違いでしたら案内していただけると助かります
219:nobodyさん
07/11/05 12:47:34
>>217
まずは >>1 の二項目。
220:217
07/11/05 13:09:25 EztAcqYR
>>219
失礼しましたPerl5です。
URLリンク(www.hi-ho.ne.jp)のDLLを使って
Nameryでリネームするつもりです。
的外れなレスだったらすみません
221:nobodyさん
07/11/05 13:59:05
「連続置換・マクロ」にチェックして、こんなんでどう?
s/^(\(.+?\))( \[.+?\] .+?)( \[.+?\])/\1\3\2/
空白の処理とか適当なので、あとは自分で調べていろいろいじってみてちょ。
222:nobodyさん
07/11/05 14:37:50 EztAcqYR
>>221
バッチリできました!ありがとうございました
しかし依頼するカタチを間違えていましたorz
gomennnasaigomennnasaigomennnasai
(愛うえお) [07.07.07] [下記kuけこ] saし素せそ
↑ではなく↓にするにはどうすれば・・・
(愛うえお) [下記kuけこ] [07.07.07] saし素せそ
223:nobodyさん
07/11/05 14:41:33 EztAcqYR
間違えた>>222は無視してください
はぁゆとりすぎて面目ない
224:nobodyさん
07/11/12 05:47:51 Kg6xKnVX
「あいうえおABC+F481ABC+F485かきくけこABC+F7A5さしすせそABC+F3F0ABC+F39EたちつてとABC+F65AなにぬねのABC+F485ABC+F7A5はひふへほABC+F7A5ABC+F39Eまみむめも」
上記の中に、「ABC+16進数x2回」がいくつ含まれているかをPHPの正規表現で表すにはどうかけばよろしいでしょうか?
ご鞭撻よろしくお願いいたします。
225:nobodyさん
07/11/12 10:41:44
>>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さん
07/11/13 16:45:36 KDxCSN/c
質問です
PHPスクリプトでpreg_match("/^[^@]+@[^.]+\..+/", $superunkoman))
という正規表現があったのですが
^[^@]+ ←最初の文字が@以外の文字の一回以上の繰り返し
@ ←で、@が入り
[^.] ←この部分が理解できません。
教えてください
227:nobodyさん
07/11/13 17:15:59
>>226
ドット以外の文字列が1つ以上
hoge@.ドメイン.ne.jp
だとか画駄目ってことじゃないの?
228:nobodyさん
07/11/13 17:39:32
>>227
ありがとうございました。そのとおりですね
229:nobodyさん
07/11/13 22:44:37
質問です
phpスクリプトで
$str = ereg_replace(
"(https?|ftp)(://[[:alnum:]\+\$\;\?\.%,!#~*/:@&=_-]+)",
"<a href=\"\\1\\2\">\\1\\2</a>",
$str);
この正規表現の(://[[:alnum:]\+\$\;\?\.%,!#~*/:@&=_-]+)の部分とhref=\"\\1\\2\">\\1\\2</a>この部分は
何を表しているのか教えてくれませんか?
230:nobodyさん
07/11/14 12:22:47 E8xVrSo0
あげわすれ
231:nobodyさん
07/11/14 13:37:57
>>230
次回からはまずマニュアル嫁
PHPマニュアルより引用
string ereg_replace ( string pattern, string replacement, string string )
pattern の中に括弧でくくられた部分 文字列が含まれている場合、
replacement の中に \\数字 のような部分文字列を埋め込むことも
できます。この部分は、 「数字」番目の括弧でくくられた部分文字列に
マッチする文字列に 置き換えられます。また、\\0 は文字列全体を
指します。9 個までの部分文字列を使うことができます。括弧は
入れ子になっていても構いません。この場合は開き括弧 '(' が
最大 9 個まで使用可能です。
232:nobodyさん
07/11/23 11:29:24 OIbrK2sw
正規表現を先輩から教えてもらったのですが、
文字列 [全ての文字] を 正規表現 [[]([^\]]+)] で 全ての文字 を取り出
すことができますが、
文字列 {全ての文字} で 全ての文字 を取り出す正規表現を教えてください。
233:nobodyさん
07/11/23 15:30:11
>>5
234:nobodyさん
07/11/23 20:53:35 tvqFA7ba
それは無理ですよ
すべての文字
を取り出す事は
235:nobodyさん
07/11/27 18:05:34 fIXcwnBh
Dカップ以上の25歳以下で抽出したいです
PHP5です
236:nobodyさん
07/11/27 19:15:14
[D-Z]カップ.*(1?[0-9]|2[0-5])歳
237:nobodyさん
07/11/28 13:29:18 fpWBgokp
PHPで正規表現であれやこれやと苦戦してます。
で、正規表現チェッカー
URLリンク(www.asterworld.com)
という物をみつけて、こりゃ便利だ!と思ってたのですが
作成した正規表現を preg_replace に設定してもマッチしてくれません。
そんなに方言があるとも思えないのですが...
C#2005の正規表現のようなのですがPerlの正規表現と何がちがうのでしょうか。
C#2005の正規表現をPerlの正規表現に変更するには無理なのでしょうか。
Perlの正規表現を作成するようなソフトはあるのでしょうか?
恐れ入りますがどなたか教えてください 頭がゴチャゴチャしてきて..
238:nobodyさん
07/11/28 15:10:44
もっとかなり基本的なところで勘違いしているんではないかと想像。
まずは、これ以上ないってくらい単純な正規表現で挙動を比較してみて、
そこから順次複雑な正規表現にしていって差異を見てみては。
239:237
07/11/28 15:41:05
ネットで調べても、どの言語の正規表現なのか今ひとつ判らないので
取り合えずアマゾンで本を注文しました。
言語ごとの差が判るようなものがあれば...
240:238
07/11/28 15:48:56
C# なら .NET なんだろうけど、「詳説 正規表現 (第2版)」には差異などが載ってる。
それで、ぱっと見で、基本的なところは Perl と .NET とで大した差は無いと思う。
241:237
07/11/29 13:36:57
「正規表現の達人」って本を手にして今、読んでますが、
お昼食べた後なんで眠くて眠くて フワァァ(/ 0 ̄)~゜
がんばってみます。。
242:nobodyさん
07/12/11 20:35:33
すみません、ヘルプをお願いします。
PHPにて、特定の画像ファイル名を持つ<IMG>タグを抽出するという正規表現を作りたいのですが
上手く行かなくて困っております。
どなたか、お助けください。。。
243:nobodyさん
07/12/12 01:18:37
>>242
もちっとくわしく。src属性以外に属性をもつのかとか。
多分alt属性がついていそうだけど。
preg_match('/<img .*?src=(["¥'])特定のファイル名を表す正規表現¥¥1 .*?>/', src);
とかか。今適当に作ったのでうまく動くかどうかはわからんけど
244:nobodyさん
07/12/19 16:38:31 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さん
07/12/19 18:16:44
>>244
後読み表明は量指定子を含められないから、もしpreg_replaceだけでやろうとするなら、
それ以外の部分を食わせておいて置き直すという、やや気持ち悪いことになると思う。
例えばこんなふうに
preg_replace('/(.*?(?:\\Q{{{\\E.*?\\Q}}}\\E.*?)*)(aaa)/', '$1[$2]', "aaa{{{aaa aaa aaa}}}aaa");
分解してから対象の部分だけ処理する等の方法も検討した方が宜しいかと。
246:nobodyさん
07/12/19 18:44:19
大田区ホームページ:職員の不祥事について(処分の公表)
URLリンク(www.city.ota.tokyo.jp)
当区職員が傷害の容疑で逮捕されるという事件につきましては、新聞等での報道やホームーページで公表したところですが、今回、事実関係が明らかになり、以下のとおり懲戒処分を行いましたので公表いたします。
区民の皆様の信頼を裏切ることとなり、誠に申し訳ありません。あらためて、お詫びいたします。
懲戒処分とは
職員が一定の義務違反を犯した場合に、公務の規律と秩序を維持することを目的として、その責任を追及するために制裁として行う処分です。
大田区では懲戒処分の公表基準に基づき、免職処分をした場合や特に区民の関心が大きい事案又は社会的影響が大きい事案について、個別の懲戒処分を公表します。
(懲戒処分の制度の詳細は、大田区人事白書をご参照ください。)
処分発令日
平成19年12月19日
被処分者氏名
建築調整課 吉原 幸光
処分の内容
停職3月
処分の理由
一般非行関係(法令に違反し、全体の奉仕者たるにふさわしくない非行があったため)
事件の概要
この職員は、平成19年11月16日(金曜日)、勤務時間終了後、東神奈川駅周辺で飲食した後、帰宅途中のJR京浜東北線川崎―蒲田間の電車内において、乗客男性に全治4週間の怪我を負わせる暴行を働き、傷害の容疑により蒲田警察署に現行犯逮捕されました。
同職員は、東京簡易裁判所に起訴され、罰金刑を申し渡されています。
247:nobodyさん
07/12/22 08:43:52 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さん
07/12/22 14:06:28
可能です
249:nobodyさん
07/12/22 16:17:35
/(0¥d+-¥d{1,4}-¥d{4})/
でどうよ
250:nobodyさん
07/12/22 17:39:05 6MoMAQ1+
perlの正規表現について質問です。
>>244の方と同じ様なものなのですが
"test <a href="URLリンク(test.jp)<)">[test]"
という形にしたいのですが、どのようにすれば宜しいでしょうか。
一度置換した後、<>タグ内の物は[]を外す方法も考えてはみたのですが、
思うように動作させる事が出来ず。ご教授の程、宜しくお願い致します。
251:nobodyさん
07/12/22 17:52:18
s/(<.*?>|test)/$1?$1:"[$2]"/ges
252:250
07/12/22 18:04:13
>>251
なるほど、どうも有難う御座いました!
253:nobodyさん
08/01/14 12:16:38 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さん
08/01/14 13:51:53
1[3-8](?::[0-5]\d){2}
255:nobodyさん
08/01/15 02:35:00 HyHnFj45
私が小学生の頃、
日本中でノストラダムスの予言が大流行していた。
「1999年の7月に人類は滅亡する!」
という例のお騒がせ終末予言である。
大人になって社会に出て働きだして、
あくせくと忙しく日々を過ごしながら、
1999年は、
ありふれた日常の中であっさりと過ぎていった。
人類は滅ばなかった。
これからここで、
1999年に起こるかもしれなかった人類の壊滅的破局を、
誰にも知られずにこっそりと回避させた人たちがいた...
という設定で、
荒唐無稽なストーリーを描いてみたい。
無論、100%完全なフィクションである。
URLリンク(www5.diary.ne.jp)
256:nobodyさん
08/01/20 11:20:53 TPbCvsXG
/([^>|\+|\s]+)\s*([>|\+]?)\s*/g
この正規表現はどういうことでしょう?
何にマッチさせようとしているのでしょうか。
JavaScriptです。
257:nobodyさん
08/01/20 11:37:26
[]の中で|を使ってOR条件にしてるから書いた人は勘違いしてる
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
5311日前に更新/179 KB
担当:undef