1 名前:デフォルトの名無しさん [2007/08/02(木) 13:53:20 ] 正規表現(Regular Expression)スレです。 質問する場合は実装言語や処理系ソフトウェア名を示しておくと話が早いです。
75 名前:デフォルトの名無しさん mailto:sage [2007/08/21(火) 16:09:08 ] Falseをフォルスと読むかファルスと読むかの違いみたいなもんだな。 俺はファリスのほうが好きだ
76 名前:デフォルトの名無しさん mailto:sage [2007/08/21(火) 16:09:47 ] それは違うだろ
77 名前:デフォルトの名無しさん mailto:sage [2007/08/21(火) 16:13:52 ] レグエキスプに一票
78 名前:デフォルトの名無しさん mailto:sage [2007/08/21(火) 16:14:09 ] ヌル、ニル、ナルの違いか
79 名前:デフォルトの名無しさん mailto:sage [2007/08/21(火) 16:24:57 ] >>75 それは、英語の発音を日本語でどう発音するか、という話しだと思うけど、 Regexp の場合はそもそも英語でどう発音するか決まってないのが問題と思われ。
80 名前:デフォルトの名無しさん mailto:sage [2007/08/21(火) 16:30:56 ] >>78 NULL、nil、NUL と言う冗談はさておき、falseのalはallのalと同じ発音だから「ファルス」は無理があると思う。
81 名前:デフォルトの名無しさん mailto:sage [2007/08/21(火) 16:39:33 ] 読み方ネタは盛り上がるねえ。 これからもネタがないときは定期的に投下することにしよう。
82 名前:デフォルトの名無しさん mailto:sage [2007/08/21(火) 16:41:55 ] おう 頼んだ
83 名前:デフォルトの名無しさん mailto:sage [2007/08/21(火) 18:46:52 ] >>66 フライングソーサーはUFOの一種ですよ。 それが何であるか識別できなければ鳥だってUFOです。 ユーフォーの呼び方を広めたのはピンクレディじゃなかろうかのう(じじいの繰り言)。
84 名前:デフォルトの名無しさん mailto:sage [2007/08/21(火) 18:54:43 ] >>64 関係ないけどトランプの柄にUSADAMONってのがあってずっとUSAダモンかと思ってたんだよ そしたらウサダモンだってさ。ローマ字かよってすげえ突っ込みたかったね
85 名前:デフォルトの名無しさん mailto:sage [2007/08/21(火) 19:00:41 ] flying saucer=空飛ぶ受け皿 unidentified flying object=正体不明の飛行物体
86 名前:私ゃアシモフのシンパだで mailto:sage [2007/08/21(火) 21:55:40 ] >>83 確認できてしまった段階で、UFOではなくなってしまうわけでして。
87 名前:デフォルトの名無しさん mailto:sage [2007/08/22(水) 17:36:21 ] HTMLタグのアトリビュートの囲い文字「"」なり「'」を 全部削除する正規表現がわかりません。 PHPのpreg_replace()で使いたいのでperl互換正規表現で 何かしらの情報をいただければ幸いです。 失礼いたします。
88 名前:デフォルトの名無しさん mailto:sage [2007/08/22(水) 18:05:45 ] そういうのはHTMLパーサ使うべきじゃね
89 名前:デフォルトの名無しさん mailto:sage [2007/08/22(水) 20:40:13 ] $httdat = preg_replace('/"/', "", $httdat); じゃなくって?
90 名前:デフォルトの名無しさん [2007/08/23(木) 00:25:37 ] $html = str_replace("'", "", $html); $html = str_replace('"', '', $html); とか・・・
91 名前:デフォルトの名無しさん mailto:sage [2007/08/23(木) 11:28:01 ] タグのなかの"だけ取りたいんじゃないの?
92 名前:デフォルトの名無しさん [2007/08/23(木) 19:53:44 ] じゃ、タグだけ取り出して、 $tag = str_replace('"', '', $tag); とかで " を削除して、元の html にハメ込めばいいやん。 <body> <a href="img/unko.jpg">"うんこ"の画像</a> </body> ↓ 1.<body> を取り出す ⇒ なにもしない。 2.<a href="img/unko.jpg"> を取り出す⇒ " を削って元にハメ込む。 3.</a> を取り出す ⇒ なにもしない。 4.</body> を取り出す ⇒ なにもしない。 ↓ <body> <a href=img/unko.jpg>"うんこ"の画像</a> </body> 正規表現とか、そういう以前の、プログラミングの基礎の問題な気がする。
93 名前:デフォルトの名無しさん mailto:sage [2007/08/23(木) 19:58:38 ] じゃ、タグをどうやって取り出すんだい? →>>88 に戻る
94 名前:デフォルトの名無しさん mailto:sage [2007/08/23(木) 20:00:32 ] というより、正規表現一発ではできないというのが正解
95 名前:デフォルトの名無しさん [2007/08/23(木) 22:31:37 ] ヒントだけじゃダメなようだね。こんなコードでどうだ? <?php $html = '<body> <a href="img/unko.jpg">"うんこ"の画像</a> </body> '; $result = ''; while (preg_match('/^(.*?)(<.+?>)(.*)$/s', $html, $s)) { $result .= $s[1]; $tag = $s[2]; $html = $s[3]; $tag = str_replace('"', '', $tag); $tag = str_replace("'", "", $tag); $result .= $tag; } echo $result; ?> ツッコミどころはあるかもしれないが、 わかりやすいコーディングを心がけたから、効率は二の次な。 あと、インデントに漢字の空白つかってるから、そのままコピペじゃ動かんよ。 どうもこの掲示板、コードを正しく貼り付けられないからプログラミングの話題には向かないなぁ。
96 名前:デフォルトの名無しさん mailto:sage [2007/08/23(木) 23:08:09 ] >>95 >>88 でFAなのに、何故そんなコメントやCDATAにも対応してない穴だらけのコードを 撒き散らすのか 馬鹿はこれだから困る
97 名前:デフォルトの名無しさん mailto:sage [2007/08/23(木) 23:31:43 ] ようは扱いの簡単なHTMLパーサ(リーダー)があればいいのかな。
98 名前:デフォルトの名無しさん [2007/08/23(木) 23:42:21 ] >>88 それのどこが正規表現w
99 名前:デフォルトの名無しさん mailto:sage [2007/08/23(木) 23:44:28 ] Rubyスレでお勧めHTMLパーサ教えてって聞くとRegexpって答えが返ってきます >>95 <img alt="hoge's image" ...でアウト
100 名前:デフォルトの名無しさん mailto:sage [2007/08/23(木) 23:46:01 ] attribute の引用符を外したい、という時点で一体何を考えてるのやら、と思ってしまった俺ガイル。
101 名前:デフォルトの名無しさん [2007/08/24(金) 00:33:01 ] ほらほら、また情報小出しが始まった。
102 名前:デフォルトの名無しさん mailto:sage [2007/08/24(金) 00:52:01 ] >>87 はもういないだろ
103 名前:デフォルトの名無しさん mailto:sage [2007/08/24(金) 02:33:08 ] >>101 には何が見えているのだろうか?
104 名前:デフォルトの名無しさん [2007/08/24(金) 21:20:49 ] 全角のタブってどうあらわすんですか?
105 名前:デフォルトの名無しさん mailto:sage [2007/08/24(金) 21:49:33 ] 全角のタブって何だよ
106 名前:デフォルトの名無しさん mailto:sage [2007/08/24(金) 22:14:31 ] >>105 全角のタブはx-jisで定義されてる pc8.2ch.net/test/read.cgi/hack/1141227510/
107 名前:デフォルトの名無しさん [2007/08/24(金) 22:34:33 ] >>99 1. 読まない 2. 調べない 3. 試さない 4. 理解力が足りない 5. 人を利用することしか頭にない ちょっとは自分で考えろよ。応用力の無いヤツには何を教えても無駄。 もうこれが最後だからな。 <?php $html = '<body> <a href="img/unko.jpg" alt="kuso\'s image">"うんこ"の画像</a> </body> '; $result = ''; while (preg_match('/^(.*?)(<.+?>)(.*)$/s', $html, $s)) { $result .= $s[1]; $tag = $s[2]; $html = $s[3]; $tag = preg_replace('/="(.+?)"/', '=$1', $tag); $tag = preg_replace("/='(.+?)'/", '=$1', $tag); $result .= $tag; } echo $result; ?>
108 名前:デフォルトの名無しさん mailto:sage [2007/08/25(土) 00:31:43 ] >>106 初めて知った・・・
109 名前:99 mailto:sage [2007/08/25(土) 07:41:35 ] >>107 俺は>>87 じゃないよ で、<!-- <a alt="hoge's image" ...> --> でアウト
110 名前:デフォルトの名無しさん [2007/08/25(土) 11:25:12 ] 1. 読まない 2. 調べない 3. 試さない 4. 理解力が足りない 5. 人を利用することしか頭にない
111 名前:デフォルトの名無しさん mailto:sage [2007/08/25(土) 11:29:59 ] 糞コード張って悦に浸ってる馬鹿を煽ってるだけと気づけ
112 名前:デフォルトの名無しさん [2007/08/25(土) 11:57:48 ] >>109 せんせい、1+1って何ですか? >>107 ここにリンゴが1個あるだろ。そこにもう1個リンゴをを置いてごらん、2個になっただろ? これが1+1だ。答えは2になる。 >>109 じゃぁ1+2は? >>107 同じように考えればいいさ。1個のリンゴがある。その横にあと2個リンゴを置けば・・ほら、3個になっただろ? これが、1+2だ。答えは3になるんだよ。 >>109 わぁ、すっごいなぁ。 >>107 じゃぁ、問題出すよ。1+3は?答えられるかな??? >>109 せんせい、それはまだ習ってません。答えられませ〜ん。 ダメだこりゃw
113 名前:デフォルトの名無しさん mailto:sage [2007/08/25(土) 12:00:04 ] 糞コードは張ること自体が罪。いい経験になっただろ?
114 名前:デフォルトの名無しさん mailto:sage [2007/08/25(土) 12:23:19 ] 浅はかな回答者の糞コードへのツッコミを、どうしても理解力の足らない 質問者の質問ということにしたいらしいねぇ >>88 より後は、全部無駄レスじゃん
115 名前:デフォルトの名無しさん mailto:age [2007/08/25(土) 13:20:24 ] stickam.jp むてきんぐ www.stickam.jp/profile/muteking stickam.jp KGKGKG www.stickam.jp/profile/kgkgkg
116 名前:デフォルトの名無しさん mailto:sage [2007/08/25(土) 14:07:57 ] >>113 自分のこと言われてると気付いてないみたいよ。
117 名前:デフォルトの名無しさん [2007/08/26(日) 18:43:44 ] 環境は秀丸です 「前の行末がピリオド&行末がピリオドでない行」 の前後に空行を入れたいのですが、どう書けばいいのか教えてください Hoge hoge. Moge moge. Title Hoge hoge. Moge moge. を下のようにしたいのです。 Hoge hoge. Moge moge. Title Hoge hoge. Moge moge. ([^\n]*)[^\.]\n ⇒ \n\n\1\n\n とか考えてみたけどダメですた
118 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 19:19:40 ] これでどう? ^(.*[^.])$
119 名前:デフォルトの名無しさん [2007/08/26(日) 19:21:22 ] >>117 やる気あるのか? バカは諦めなさい。
120 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 19:34:09 ] >>117 ↓スマートじゃないけど。 検索文字列: \.\f\n.*[^.]\n\f 置換文字列: .\n\1\n
121 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 19:43:28 ] >>120 サンクス ばっちりでした >>118 なんか秀丸って行頭行末をまたぐときとかって、$^とかうまく反応して くれないんですよね >>120 でいけました 118もありがとう
122 名前:118 mailto:sage [2007/08/26(日) 19:51:27 ] 自分のは完全な誤答だったよ(´・ω・`)出直してきます
123 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 20:00:21 ] > ^(.*[^.])$ 顔文字っぽく見える
124 名前:デフォルトの名無しさん [2007/08/26(日) 22:09:35 ] 基地害じゃね?
125 名前:デフォルトの名無しさん [2007/08/27(月) 12:32:15 ] JavaScriptでの「?:」の意味を教えてください。解説サイトでも可です。 よろしくお願いします。
126 名前:デフォルトの名無しさん [2007/08/27(月) 13:19:04 ] なんでこう、混乱する訳ばかりなんだろうな。 正規表現というのは、例えば 「円周率は3.13」 という誤りを 「円周率は3.14」 と、正しく書くこと。
127 名前:デフォルトの名無しさん mailto:sage [2007/08/27(月) 13:30:30 ] 正則表現とでも呼んでおけ
128 名前:デフォルトの名無しさん mailto:sage [2007/08/27(月) 15:40:01 ] >>125 キャプチャなしの括弧 ttp://developer.mozilla.org/ja/docs/Core_JavaScript_1.5_Reference:Global_Objects:RegExp
129 名前:125 mailto:sage [2007/08/27(月) 16:15:47 ] >>128 ありがとうございました。
130 名前:デフォルトの名無しさん mailto:sage [2007/08/28(火) 17:24:44 ] javascriptかperlなのですが (fire|fighter|future|fusion) と (fi(re|ghter)|fu(ture|sion)) のような場合はどちらが高速でしょうか?
131 名前:87 mailto:sage [2007/08/28(火) 18:21:10 ] 87です。 こちらを見に来るのをすっかり忘れてしまっておりました! 大変申し訳ございませんでした。 >>88 様 HTMLパーサを使うほうが良いとのご忠言、ありがとうございます。 その方向も模索させていただきます。 >>89 ,90様 >>91 様のご指摘通り、HTMLタグのアトリビュートの"'のみを外したいと 考えておりました >>92 ,95様 具体的なサンプルまで作成頂きまことにありがとうございます。 なるべく正規表現のみで実現できないかを模索しておりましたので、 その方法を選択肢から排除しておりました。申し訳ございません。 >>94 様 なるほど、やはり正規表現の1発処理は諦めたほうが良いのですね。 >>97 様 大賛成です。 >>100 様 良いか悪いかは別としまして、モバイルサイトで出力されるHTMLを極力 シェイプアップさせるべく、アトリビュートの囲み文字を一括ではずす ことがしたかったのです。 >>102 様 失礼しました。確かにおっしゃる通りです。申し訳ございません。
132 名前:デフォルトの名無しさん mailto:sage [2007/08/28(火) 18:26:41 ] やる気のないやつにはろくな回答が返ってこんわな
133 名前:デフォルトの名無しさん mailto:sage [2007/08/29(水) 13:44:15 ] >>130 >(fire|fighter|future|fusion) こんなことするんだったら連想配列つかえよw
134 名前:デフォルトの名無しさん mailto:sage [2007/08/29(水) 21:49:22 ] >>130 っ Benchmark
135 名前:デフォルトの名無しさん mailto:sage [2007/08/30(木) 01:14:58 ] 質問させてください。 「X=\\\\\\\\ho\\,ge\\\\」を 「X=\\ho,ge」にするにはどうすればよいでしょうか? 具体的には「\\\\」を「\」一文字に、「\\,」の場合はカンマのみにしたいのです。 \\{2,4} なんかを思いついて弄ってみたんですが、さっぱりでして……
136 名前:デフォルトの名無しさん mailto:sage [2007/08/30(木) 01:19:53 ] 単に \\, を , に置換してから、 \\\\ を \ に置換すればいいんでない?
137 名前:デフォルトの名無しさん mailto:sage [2007/08/30(木) 22:17:04 ] 正規表現で000000〜ffffffまでかどうかチェックできる表現教えてちょ
138 名前:デフォルトの名無しさん mailto:sage [2007/08/30(木) 22:19:52 ] [0-9a-fA-F]{6} でいいかな
139 名前:デフォルトの名無しさん mailto:sage [2007/08/30(木) 23:44:00 ] >>137 のルールに加えて、左に0はいくらつんでもOKの書式を許す、 純粋にffffffまでの数字かどうかはこれでいけるかな? (?<![0-9a-f])0*[0-9a-f]{6}(?![0-9a-f])
140 名前:デフォルトの名無しさん mailto:sage [2007/08/31(金) 07:18:58 ] >>139 6桁というのはチェックしたいです。
141 名前:デフォルトの名無しさん mailto:sage [2007/08/31(金) 11:13:52 ] オライリーの詳説・正規表現に載っていたHTMLのパターンを 否定(訂正)していたのを別のオライリーの本で見かけたんだけど タイトルを忘れてしまいまして どなたかご存じないでしょうか?
142 名前:デフォルトの名無しさん [2007/09/02(日) 01:16:22 ] 文字列 Aと文字列 Bを両方含んでいて順序もA→Bになっている文字列にマッチする 正規表現を教えてください。 AiiiiiiiiB にはマッチして欲しい BiiiiiiiiA にはマッチして欲しくない
143 名前:デフォルトの名無しさん mailto:sage [2007/09/02(日) 02:06:35 ] A.*B で何か問題が?
144 名前:デフォルトの名無しさん mailto:sage [2007/09/02(日) 08:37:32 ] >>142 AiBiAiB BiAiBiA は、マッチするの、しないの?
145 名前:デフォルトの名無しさん [2007/09/02(日) 18:40:31 ] Berryの設定で正規表現を使いたいのですが 「list.php?table=moe&page=1」の最後の値が1〜9999まで マッチするような正規表現を教えていただけませんか? 正規表現むずかしい><
146 名前:デフォルトの名無しさん mailto:sage [2007/09/02(日) 19:03:51 ] list\.php\?table=moe&page=([1-9][0-9]{0,3})$ 適当
147 名前:デフォルトの名無しさん mailto:sage [2007/09/02(日) 19:12:57 ] >>146 うわーどうもありがとう。 正規表現って便利そうだけど難しくてなかなか^^;
148 名前:デフォルトの名無しさん mailto:sage [2007/09/05(水) 18:31:09 ] VBSで正規表現を使ってます。 URLの相対パスを正規表現でマッチさせようとしているのですが 「../」と「./」の区別が付きません。どのようにして区別させたらよいのでしょうか?
149 名前:デフォルトの名無しさん mailto:sage [2007/09/05(水) 18:54:01 ] どっちも相対パスだと思うが
150 名前:デフォルトの名無しさん mailto:sage [2007/09/05(水) 18:58:25 ] 説明が悪くて申し訳ないです 例えば「../././abc.html」の様なURLがあったとして 「./」のをマッチさせるのに「\./」とすると「../」にもマッチしてしまうので 「./」だけにマッチさせるにはどうしたらいいのかな?と思いまして…
151 名前:デフォルトの名無しさん mailto:sage [2007/09/05(水) 19:16:23 ] (/|^)\./
152 名前:デフォルトの名無しさん mailto:sage [2007/09/05(水) 19:22:56 ] ありがとうございます。できました! 時間を取ってそのパターンの意味を調べさせてもらいます
153 名前:デフォルトの名無しさん [2007/09/06(木) 17:40:38 ] 顔文字に見えてしょうがねえ
154 名前:デフォルトの名無しさん [2007/09/09(日) 00:58:20 ] 正規表現があるという事は偽物表現もあるということに他ならないわけですが どこさありますか。
155 名前:デフォルトの名無しさん mailto:sage [2007/09/09(日) 01:03:36 ] irregular expression?
156 名前:デフォルトの名無しさん mailto:sage [2007/09/13(木) 10:45:48 ] 文字列が全て0かどうかは ^0+* でよいでしょうか?
157 名前:デフォルトの名無しさん mailto:sage [2007/09/13(木) 11:45:24 ] ^0+$ じゃないのかな
158 名前:デフォルトの名無しさん mailto:sage [2007/09/13(木) 11:59:33 ] >>157 ありがとうございます!
159 名前:デフォルトの名無しさん mailto:sage [2007/09/14(金) 11:40:36 ] スレタイに●が三つ以上入ってるスレを消したいたいんだが 全然消えない…この式じゃ間違ってる? ●{1}.*●{1}.*●{1} ちなみに消したいのはこのスレ ttp://pc11.2ch.net/test/read.cgi/jisaku/1189612206/
160 名前:デフォルトの名無しさん mailto:sage [2007/09/14(金) 11:44:31 ] {1}って入れる意味あるのか?
161 名前:デフォルトの名無しさん mailto:sage [2007/09/14(金) 12:05:29 ] てか正規表現で●って使えないっぽいな… グーグルでも●の検索結果ゼロだしどうしたものやら
162 名前:デフォルトの名無しさん mailto:sage [2007/09/14(金) 12:25:52 ] そんなバナナ
163 名前:デフォルトの名無しさん mailto:sage [2007/09/14(金) 13:34:57 ] >>159 前方一致ならそれでもいいはずだが、完全一致なら最後にもう一組 ".*" が必要。
164 名前:デフォルトの名無しさん mailto:sage [2007/09/14(金) 14:21:58 ] >>161 使えるかどうかは、ライブラリおよび環境設定による。
165 名前:デフォルトの名無しさん mailto:sage [2007/09/14(金) 18:54:07 ] やっぱり●*ですら反応しないな…レスサンクス ブラウザのほうのスレで聞いて来るわ >159は撤回ってことで
166 名前:デフォルトの名無しさん [2007/09/14(金) 19:25:12 ] .*●.*●.*●.* こうじゃねーの
167 名前:デフォルトの名無しさん [2007/09/14(金) 22:07:35 ] >>6 格好悪い顔文字作るなハゲ
168 名前:デフォルトの名無しさん mailto:sage [2007/09/15(土) 08:05:30 ] (●.*){3,} とかでいいんじゃないすか(^ω^;)
169 名前:デフォルトの名無しさん mailto:sage [2007/09/16(日) 00:30:09 ] (.*●.*){3,} ちょっとかわゆい
170 名前:デフォルトの名無しさん mailto:sage [2007/09/17(月) 08:47:49 ] Perlで、Cのコメント除去プログラム $text = join ('',<>); $text = ~S { (".*?")|(/\*(.|\n)*?\*/)|(//[^\n]*) }{$1}gx; print $text;
171 名前:デフォルトの名無しさん mailto:sage [2007/09/17(月) 13:04:12 ] phpで文字列の中のすべての4ケタの数字にマッチする 正規表現を試してます。 が、以下のスクリプトを動かしても"1234"がマッチしません。 なにかうまい方法ありませんでしょう。 //期待する結果 0000 1234 8888 9999 $str = "aaa 0000 1234 12345 1111 hoge 4545456465 9999"; $c = preg_match_all("/^[0-9]{4,}|\s[0-9]{3,4}\s|[0-9]{4,}$/",$str,$m); echo $c."個マッチ<br>\r"; foreach ($m[0] as $k => $t){ echo "<br>\$m[0][$k] => $t\r"; $i++; }
172 名前:デフォルトの名無しさん mailto:sage [2007/09/17(月) 17:53:23 ] /(?<=\s)([0-9]{4})([^0-9a-z]?)/ なんとなーくという感じになってきたんですが…、もう少し何かorz
173 名前:デフォルトの名無しさん mailto:sage [2007/09/17(月) 22:49:11 ] 解決しました ! /\b[0-9]{4}\b/ //4ケタの数字にマッチ でいけますた、スレ汚しスマソ。
174 名前:デフォルトの名無しさん mailto:sage [2007/09/23(日) 23:22:56 ] JaneViewのNGExで悩んでいるのですが A A B A B A 東京 埼玉 東京 埼玉 東京 埼玉 埼玉 千葉 埼玉 のように ((仙台|東京|名古屋).*大阪.*\2)|((仙台|東京|大阪).*名古屋.*\4)
175 名前:デフォルトの名無しさん mailto:sage [2007/09/23(日) 23:37:37 ] すみません書きかけで送信してしまいました。 JaneViewのNGExで悩んでいるのですが A,B,C,D…といったリストがあったとして、 A A C D D B のように間に入らなければ検出されずに A B A B C B C A B C のようにリストの要素"AとA"や"BとB"の間に、別の要素が入っている場合を検出したいので ((A|B|C).*D.*\2)|((A|B|D).*C.*\4) といった感じでやっています。 リストの要素が少なければ | でつないでいけばいいのですが、リストが多いととんでもない状態になりますよね。 どうすればこれをもっとスマートな表記にできるでしょうか?