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) といった感じでやっています。 リストの要素が少なければ | でつないでいけばいいのですが、リストが多いととんでもない状態になりますよね。 どうすればこれをもっとスマートな表記にできるでしょうか?
176 名前:デフォルトの名無しさん mailto:sage [2007/09/27(木) 21:16:09 ] (A|B|C|D)\s+((?!\1).)+\s+\1 とか?俺のJaneではヒットした。・・・一体何に使うのか気になる。
177 名前:デフォルトの名無しさん mailto:sage [2007/09/27(木) 23:38:11 ] ありがとうございます。 (?!\1)でできました。 アニメサロンの延長情報確定スレに貼られている表で 邪魔な表を貼り付けられるのをあぼーんしたかったんだ。
178 名前:デフォルトの名無しさん [2007/09/28(金) 11:42:54 ] 正規表現で比較関数のようなことはできますか?
179 名前:デフォルトの名無しさん mailto:sage [2007/09/28(金) 11:45:35 ] もっと具体的に
180 名前:デフォルトの名無しさん [2007/10/03(水) 18:17:05 ] 具体的に書いたらオマエが答えられるのかよ
181 名前:デフォルトの名無しさん mailto:sage [2007/10/03(水) 18:39:11 ] 答えられるか答えられないか具体的に判断できる
182 名前:デフォルトの名無しさん [2007/10/03(水) 19:52:07 ] メーリングリスト等にもよくあるよね 内容が分かる程度に端折って書くと 「質問の仕方をしらない」等の苦情 具体的且つ詳細に書くと答えられないくせにw
183 名前:デフォルトの名無しさん mailto:sage [2007/10/03(水) 22:13:05 ] こういう珍獣ってリアルにはいないんだよなぁ。
184 名前:デフォルトの名無しさん mailto:sage [2007/10/03(水) 22:21:48 ] >>178 =180=182 五日経っても回答得られなかった現実をきちんと見据えて、 いい加減諦めて「もっと具体的に」書いた方が良いのでは?
185 名前:デフォルトの名無しさん mailto:sage [2007/10/03(水) 22:57:50 ] ん・・・全く意味が分からんからね。
186 名前:デフォルトの名無しさん mailto:sage [2007/10/03(水) 23:54:49 ] こういう質問には「できません」と答えるのが大人のマナー。
187 名前:デフォルトの名無しさん mailto:sage [2007/10/04(木) 00:25:03 ] >>184 もっと具体的に
188 名前:デフォルトの名無しさん mailto:sage [2007/10/04(木) 02:24:11 ] もっと愚怠的に
189 名前:デフォルトの名無しさん [2007/10/04(木) 08:37:31 ] hage
190 名前:デフォルトの名無しさん [2007/10/05(金) 00:59:38 ] 528 名前:名無し募集中。。。[] 投稿日:2007/10/05(金) 00:23:13.84 0 PHPの正規表現に詳しいやつがいたら教えてほしい preg_replaceで置換をしたいんだが たとえば /sample/test/14567.jpg というのを /sample/test/backup/14567.jpg というように最後の/を/backup/に置き換えるにはどうしたらいい? いろいろ試してみたが俺のレベルじゃどうにもならんかった
191 名前:デフォルトの名無しさん mailto:sage [2007/10/05(金) 01:29:35 ] preg_replace('/¥/([^¥/]+)$/', "/backup/$1", "/sample/test/14567.jpg");
192 名前:デフォルトの名無しさん [2007/10/05(金) 16:25:45 ] 知ったかぶり
193 名前:デフォルトの名無しさん mailto:sage [2007/10/05(金) 22:30:53 ] >>190 pathinfo使えば?
194 名前:デフォルトの名無しさん [2007/10/06(土) 10:35:59 ] 余計なお世話
195 名前:デフォルトの名無しさん mailto:sage [2007/10/06(土) 22:47:06 ] 珍獣増えすぎwwwwwwwwwテラカオスwwwwwwww
196 名前:デフォルトの名無しさん mailto:sage [2007/10/06(土) 23:56:30 ] [あはばば, ばばばば], あばばばば, あば, [あばばば, ば, ばばばばはば, ばば] というような文字列があったとき、 [あはばば, ばばばば] あばばばば あば [あばばば, ば, ばばばばはば, ばば] と分割したいのですが、どのようにしたらいいでしょうか? (\\[?.*\\]?),とかやってみたのですが全然だめでした orz なかのあばば〜は変化します。
197 名前:デフォルトの名無しさん mailto:sage [2007/10/06(土) 23:57:28 ] >>196 まずは >>1 を見てみて。
198 名前:デフォルトの名無しさん mailto:sage [2007/10/07(日) 00:00:39 ] >>197 すいません、.NETのSystem.Text.RegularExpressionsのRegex.Split()で置換しています。
199 名前:デフォルトの名無しさん mailto:sage [2007/10/07(日) 00:10:25 ] >>198 すいません、置換じゃなくて分割でした orz
200 名前:デフォルトの名無しさん mailto:sage [2007/10/07(日) 01:56:00 ] >>196 まず、[あば,ばばば] を うんこっこー に痴漢する (うんこっこー に痴漢した文字列は堆肥しておく) うんこっこー, あばばばば, あば, うんこっこー となるので、これを分割する。そのあと、 うんこっこー を堆肥しておいた文字列に戻す。
201 名前:デフォルトの名無しさん mailto:sage [2007/10/07(日) 04:37:56 ] 逆に、 "," をうんこっこーに置換しても良いかもね。 Perl ですまんけどこんな感じで。 $str =~ s/(\[[^]]+\]|[^,]+)(?:(,\s*)|$)/\1うんこっこー/g; $ary = split(/うんこっこー/, $str);
202 名前:デフォルトの名無しさん mailto:sage [2007/10/07(日) 12:19:13 ] Perl 5.8.8を使っています。 文字列の先頭からある文字列(たとえばXYZ)の直前までを削除する、 ただしその文字列XYZがこない場合はすべてを削除する正規表現は どう記述したらよいでしょうか。 たとえば (1) abcXYdefXYZ123 なら abcXYdef のみを削除する (2) abcXYdef なら abcXYdef すべてを削除する ということです。 s/^.*(XYZ)?/$1/; とすると(1),(2)ともすべてが削除されてしまい、 s/^.*?(XYZ)?/$1/; とすると(1),(2)とも1文字も削除されません。 s/^.*?XYZ// || s/^.*//; とすれば(1),(2)ともうまくいきますが、 できれば1個の正規表現で実現させたいです。
203 名前:デフォルトの名無しさん [2007/10/07(日) 13:02:54 ] s/^abcXYdef//;
204 名前:デフォルトの名無しさん mailto:sage [2007/10/07(日) 13:19:38 ] ちゃんと動くんなら、自分の能力で到達可能な範囲のプログラムで十分だと思うよw s/^((?!XYZ).)*//
205 名前:デフォルトの名無しさん [2007/10/07(日) 13:27:33 ] s/(^.*?XYZ|^.*)//;
206 名前:デフォルトの名無しさん [2007/10/07(日) 13:30:59 ] s/^.*?XYZ|^.*//;
207 名前:デフォルトの名無しさん [2007/10/07(日) 13:32:25 ] > s/^.*?XYZ// || s/^.*//; > とすれば(1),(2)ともうまくいきますが、 ウソつけ!
208 名前:202 mailto:sage [2007/10/07(日) 15:49:43 ] 短時間にたくさんのレスが!ありがとうございます。 >>204 (?!pattern) が使えるんじゃないかと思って 質問前にPerlのマニュアルを読んだんですがうまくいきませんでした。 なるほど、こうすればうまくいくんですね。 >>207 s/^.*?XYZ/XYZ/ || s/^.*//; の間違いでした。失礼しました。 >>205-206 ということで、元の質問が間違ってたので間違いです。 試行錯誤の末、 s/^(.*(?=XYZ)|.*)//; という別解を見つけました。
209 名前:デフォルトの名無しさん [2007/10/07(日) 20:10:50 ] PHP5のpreg_matchで、 涼子、愛、美姫以外の文字列が来た場合を検知したいんですが。 涼子、愛、美姫のどれかを検知する場合、 pattern = '/涼子|愛|美姫/'; ですが、涼子、愛、美姫以外を検知するにはどう書いたらいいですか?
210 名前:デフォルトの名無しさん mailto:sage [2007/10/07(日) 20:13:06 ] そのパターンにマッチしないことを確認すればよい。
211 名前:209 [2007/10/07(日) 20:21:07 ] >>210 すみません。 涼子、愛、美姫以外を含む文字列です。 たとえば、涼子愛子美紀が来たばあい、 「子」が紛れ込んでることを検知したいのですが。
212 名前:209 [2007/10/07(日) 20:36:57 ] >>211 '/^涼子|^愛|^美姫/';
213 名前:209 [2007/10/07(日) 20:38:53 ] >>212 すみません。途中でした。 '/^涼子|^愛|^美姫/'; だと涼子、愛、美紀も全部ひっかかってしまいます。 それだけを含んで、それ以外の文字列を全然含まないようにしたいのですが。
214 名前:デフォルトの名無しさん [2007/10/07(日) 20:55:01 ] 同じくphp5のpreg_matchですが、 半角または全角の数字から始まるはどう書きますか?
215 名前:デフォルトの名無しさん mailto:sage [2007/10/07(日) 21:39:55 ] >>213 /^(?:涼子|愛|美姫)*$/ とか?
216 名前:デフォルトの名無しさん mailto:sage [2007/10/07(日) 21:40:46 ] >>214 /^(?:\d|1|2|3|4|5|6|7|8|9|0)/ とか?
217 名前:デフォルトの名無しさん [2007/10/08(月) 00:15:19 ] $string = '涼子愛子美紀'; $result = preg_replace( '/涼子|愛|美姫/', '', $string); echo 'おまんこ';
218 名前:デフォルトの名無しさん [2007/10/08(月) 13:51:27 ] >>215-216 ありがとうございました。 >>217 氏ね!
219 名前:デフォルトの名無しさん mailto:sage [2007/10/08(月) 17:38:51 ] NFAを機械的にDFAに変換する方法を教えてください。
220 名前:デフォルトの名無しさん [2007/10/08(月) 20:14:07 ] そんなもん無い! って答えでFA?
221 名前:ヽ・´∀`・,,)っ━━━━━━┓ mailto:sage [2007/10/19(金) 03:35:03 ] Aho-Corasick改とかでいいと思うが。
222 名前:デフォルトの名無しさん [2007/10/25(木) 17:50:49 ] phpなんですが、*.example.*/ にマッチさせたいと思ってます。 2つめの*の部分で、comやjp等にマッチさせたいのですが、 http:\/\/(.+\.)?example\..+/では、 www.example.hoge.com/ なんかもマッチしてしまいます。 http:\/\/(+\.)?example\.(com|jp)/とかにすると、 新しいドメインがでてきたときに対応できません。 何かよい方法ありませんでしょうか?
223 名前:デフォルトの名無しさん mailto:sage [2007/10/25(木) 18:33:14 ] >>222 「新しいドメイン」ってのはどんなところまでを想定してる?
224 名前:デフォルトの名無しさん mailto:sage [2007/10/25(木) 18:49:54 ] 簡易なのでよければ \..+ じゃなくて \.[^/.]+ にするとか
225 名前:デフォルトの名無しさん [2007/10/25(木) 19:51:52 ] http:\/\/(+\.)?example\.[^.]+\/
226 名前:デフォルトの名無しさん [2007/10/27(土) 16:43:32 ] /\/\/\/\/\//\/\/\/\/\/\/\FUCKINTOSH?_*+*}+}`+`%$W`}!LT`LA<VR`AKVAREGERGA"#%IW$%U&'I<{)'(<O'T(*O> 最近、こうして何の作意もなく打ったものが正則表現に見えてどうしようもない
227 名前:デフォルトの名無しさん [2007/11/08(木) 00:14:41 ] 最初と最後は"/"であり、 その間に"/../"や"/./"が発生しない文字列を 正規表現では記述できますか? [×] /etc/../usr/./local/ /../ /./ [○] /etc/sysconfig/ /abc/.aaaa/
228 名前:デフォルトの名無しさん mailto:sage [2007/11/08(木) 05:41:48 ] >>227 正規表現で一気に行うんじゃなくて、 "/" で分割して、各パーツがドットだけで構成されていたらハネる、とか (ディレクトリトラバーサル対策ならよく調べたほうがいいかも)
229 名前:デフォルトの名無しさん mailto:sage [2007/11/08(木) 08:45:57 ] ありがとうございます。 xmlのxsd:patternで書きたかったのですが、だめそうです。考え直してみます。
230 名前:デフォルトの名無しさん mailto:sage [2007/11/08(木) 13:40:57 ] >>227 これでどうかな。 ^/(([^/.][^/]*|\.[^/.][^/]*|\.\.[^/]+)/)*$ 汚染チェックに使うなら>>228 の言うようにした方がいいな。
231 名前:デフォルトの名無しさん [2007/11/11(日) 17:33:05 ] webでの絵文字表示に苦戦しているのですが、 BAD+[SJISコード]を正規表現で表すにはどう書いたらいいですか?
232 名前:デフォルトの名無しさん [2007/11/11(日) 17:34:32 ] 書き忘れていました。言語はPHPで、バージョンは4.4.1です。
233 名前:デフォルトの名無しさん [2007/11/11(日) 23:06:58 ] ぐ・ぐ・れ
234 名前:デフォルトの名無しさん mailto:sage [2007/11/11(日) 23:47:19 ] うん、ググれば全て解決するからこのスレ潰すべきだね。
235 名前:デフォルトの名無しさん mailto:sage [2007/11/11(日) 23:52:31 ] aho
236 名前:デフォルトの名無しさん [2007/11/12(月) 00:15:22 ] ワロタwwwwwww
237 名前:デフォルトの名無しさん [2007/11/12(月) 01:18:32 ] いや、ググって該当するページを見たんですけど、正規表現の構成の仕方がわからなくて、 ここに書き込みました。 調べるだけ調べたんですけど、やはりだめでしょうか
238 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 01:42:05 ] だめです
239 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 04:32:21 ] なんだこいつら 本当はできないんじゃねーの?
240 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 09:32:04 ] >>239 お、やっと気づいたようだね。それじゃあバイバーイ!
241 名前:デフォルトの名無しさん [2007/11/12(月) 19:50:58 ] 質問です。正規表現でconsumeするというのは日本語でいうとどういうことですか?
242 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 19:59:53 ] 文字を消費するということ。
243 名前:241 [2007/11/12(月) 21:10:47 ] >>242 ありがとうございます。「文字を消費する」とはどういうことでしょうか? イメージが湧きません。
244 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 22:24:56 ] 正規表現 /..c/ を "abc" にマッチさせたときを考えると、 最初の /./ は "a" にマッチして消費する。 すると、なんと言うかテキストエディタのカーソルが一つ進むのをイメージしてくれたらよいか、 二個目の /./ が "b" にマッチできるようになる。
245 名前:デフォルトの名無しさん [2007/11/12(月) 22:30:07 ] テキストエディタの ed ってのが元になってるからね。 カーソルって例えはナイス!
246 名前:241 [2007/11/12(月) 23:16:33 ] >>244 なるほど、よくわかりました。ありがとうございます。
247 名前:デフォルトの名無しさん [2007/11/15(木) 07:57:08 ] おはようございます。このスレの過去ログってネットにありますか?
248 名前:デフォルトの名無しさん mailto:sage [2007/11/15(木) 16:55:18 ] あります。
249 名前:デフォルトの名無しさん [2007/11/15(木) 20:14:33 ] アキュムレータの0ビット目って左端?それとも右端?
250 名前:デフォルトの名無しさん mailto:sage [2007/11/16(金) 00:58:31 ] >>249 スレ違い。
251 名前:デフォルトの名無しさん mailto:sage [2007/11/16(金) 23:29:30 ] >>249 左
252 名前:デフォルトの名無しさん mailto:sage [2007/11/17(土) 01:06:19 ] perl互換のFlexible Renamerで置換したいのですが。 (hoge)hoge(hoge).txtを(hoge) hoge(hoge).txtとしたい場合はどう書けばいいのでしょうか。 )の直後にスペースを入れ、拡張子前の)の直後には入れたくないんです。
253 名前:デフォルトの名無しさん mailto:sage [2007/11/17(土) 01:30:29 ] ")" -> ") " " ." -> "."
254 名前:デフォルトの名無しさん mailto:sage [2007/11/17(土) 01:34:08 ] >>253 なるほど。2回やるという手が・・・。ありがとうございました。
255 名前:デフォルトの名無しさん mailto:sage [2007/11/17(土) 09:27:48 ] リネーマの仕様によるけど、Perl互換なら "^(\([^)]*\))" -> "$1 " "^(\([^)]*\))(.*)" -> "$1 $2" とか。いずれにしても調整が必要
256 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 19:15:56 ] vb.netで 「// xxxxx EXEC 〜」で始まり、 「// xxxxx EXEC 〜」で始まる1行前までを 1グループで取得したいと考えています (?ims:(^\/\/+\s+EXEC+.+)) だとまるまる取得してしまうのはわかるのですが、 これを上記の様に取得するにはどう書けばよいのでしょうか? ご教授よろしくお願いいたします。
257 名前:デフォルトの名無しさん [2007/11/18(日) 20:18:03 ] split
258 名前:デフォルトの名無しさん mailto:sage [2007/11/19(月) 02:39:09 ] >>256 なんでスラッシュをエスケープしてんだよw .NET の正規表現なら可変長の戻り読みが使えたと思うから、 その始まりのしるしと終端のしるしを戻り読みの部分と先読みの部分に置けば? .NETで可変長の戻り読みができなかったらすまんw
259 名前:デフォルトの名無しさん [2007/11/22(木) 22:35:09 ] 数値比較をしたいのですが、0x021a4 っていくつなのでしょうか?
260 名前:デフォルトの名無しさん mailto:sage [2007/11/22(木) 23:13:20 ] 2 * 16^3 + 1 * 16^2 + 10 * 16^1 + 4 * 16^0
261 名前:デフォルトの名無しさん mailto:sage [2007/11/22(木) 23:17:32 ] >>259 電卓開く ↓ 関数電卓モードにする ↓ 16進モードにする ↓ 21a4と打つ ↓ 10進モードにする 正規表現の話じゃねーし
262 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 01:54:14 ] ttp://www.google.co.jp/search?hl=ja&q=2*16%5E3%2B1*16%5E2%2B10*16%5E1%2B4*16%5E0&lr=
263 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 01:58:02 ] www.google.co.jp/search?q=0%2B0x021a4 これでおk
264 名前:デフォルトの名無しさん [2007/11/23(金) 02:44:38 ] 16進数知らないプログラマがいるのか・・・時代は変わったな。
265 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 02:46:28 ] プログラマじゃないから
266 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 08:04:03 ] 具体的には秀丸エディタで置換を行いたいのですが、こうするには… -------------- [12:34:56] 発言者1: 文章2 文章3 [12:34:56] 発言者2: 文章4 ↓ [12:34:56] 発言者1: 文章2 文章3 [12:34:56] 発言者2: 文章4 -------------- どうしたら良いのでしょうか?(文章の中に [ ] が含まれる可能性は無いものとして単純に) \n[ と記述すると、正規表現の括弧の対応が合ってないとか怒られてしまいます。 非常に初心者な質問ですいません。
267 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 09:26:00 ] エスケープ
268 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 11:43:08 ] regexre FrameworkFrame などといったような「同じ文字列とそれに挟まれた別な文字列」を取り出したいのですが、 どういう文を書いたら実現できますか? PHPのpreg_replaceで使用します。 よろしくお願いします。
269 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 12:00:17 ] re(.*)re でいけると思うけど。 以下はJScriptだけどこれくらいなら読み取れるよね? var keyword = "re"; var pattern = keyword + "(.*)" + keyword; var objReg = new RegExp(pattern); "regexre".match(pattern); WScript.StdOut.WriteLine(RegExp.$1); "rere".match(pattern); WScript.StdOut.WriteLine(RegExp.$1); "regexregex".match(pattern); WScript.StdOut.WriteLine(RegExp.$1);
270 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 12:50:33 ] Ruby なら (.+)(.+)\1 で $2 を取ればいけるけど、 PHP でいけるかどうかは知らん
271 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 12:53:54 ] >>269 日本語読解力に大きく欠けますな
272 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 13:00:21 ] eregexreならrが取れるはずだからつかいものになるのか?
273 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 13:05:34 ] eregexre なら regexr が取れる。 最長一致だから。 これが目的の物かはともかくとして。
274 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 13:51:50 ] >>269 すみません、説明不足でした。 同じ文字列というのも未知なのです。 >>270 . ありがとうございます。 Rubyならいける、というのは期待が持てました。 早速調べてみます。 >>272-273 ここも説明不足でした。 「同じ文字列とそれに挟まれた別な文字列」の全てを取得したいです。 つまりThisIsThePenという文字列からThisIsTh(とePe)を取得できるようにしたいのです。
275 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 13:56:24 ] sIs は要らないの?
276 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 14:00:51 ] sIs が必要ないならとりあえず Ruby ではこうなる。 PHP でいk(ry 'ThisIsThePen'.scan(/((.+).+\2)/) { puts($1) }
277 名前:デフォルトの名無しさん [2007/11/23(金) 19:31:22 ] 文字列 [全ての文字] を 正規表現 [[]([^\]]+)] で 全ての文字 を取り出すことができますが、 文字列 {全ての文字} で 全ての文字 を取り出す正規表現を教えてください。
278 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 19:42:51 ] 日本語でおk
279 名前:デフォルトの名無しさん [2007/11/23(金) 19:46:56 ] \{([^\}]+)\}
280 名前:デフォルトの名無しさん [2007/11/24(土) 08:40:39 ] ありがとう。 すごいね 正規表現分かる人尊敬するわ
281 名前:デフォルトの名無しさん mailto:sage [2007/11/24(土) 09:46:49 ] 別に大した事じゃない。 すげーとか思って思考停止してるから理解できないだけ。
282 名前:デフォルトの名無しさん [2007/11/24(土) 09:48:41 ] 分かりました。 私も頑張って勉強します
283 名前:デフォルトの名無しさん mailto:sage [2007/11/24(土) 10:09:17 ] よし! その意気だ!
284 名前:デフォルトの名無しさん [2007/11/24(土) 11:18:23 ] ホモビデオからお前ら。
285 名前:デフォルトの名無しさん [2007/11/25(日) 17:53:21 ] なんでホモなの? 私は女性です
286 名前:デフォルトの名無しさん mailto:sage [2007/11/25(日) 19:20:34 ] 性同一性障害か
287 名前:デフォルトの名無しさん [2007/11/25(日) 20:30:25 ] 性器表現
288 名前:デフォルトの名無しさん mailto:sage [2007/11/25(日) 20:32:19 ] モザイクのことか
289 名前:デフォルトの名無しさん mailto:sage [2007/11/26(月) 00:01:46 ] >>285 ホモセクシュアルは同性愛って意味だよ 当然、女性同士でも使う
290 名前:デフォルトの名無しさん mailto:sage [2007/11/26(月) 12:46:15 ] ここにいる奴らは全員例外なくホモ サピエンス
291 名前:デフォルトの名無しさん mailto:sage [2007/11/26(月) 15:19:45 ] ホモ牛乳という名前にはかなりインパクトがあると思うんだ
292 名前:デフォルトの名無しさん mailto:sage [2007/11/26(月) 15:26:00 ] 「ホモゲナイズド牛乳」じゃ長すぎるべ。
293 名前:デフォルトの名無しさん mailto:sage [2007/11/26(月) 18:38:03 ] ホモジニアス・マルチコアを略してホモコア呼べ
294 名前:デフォルトの名無しさん [2007/11/27(火) 08:45:29 ] みんな頭おかしいのですね。 残念です
295 名前:デフォルトの名無しさん [2007/11/27(火) 11:39:19 ] HTMLに含まれる CSSの class="***" や id="**" , aタグの target="***" を削除したいんですが、観よう見真似でやったのですが マッチしてくれません。どなたか.. (id|class|target|title|style|name)=[\+\$\;\?\.\W\w%,!#~*/:@&=_-]+? PC用に吐き出されたデータを、携帯用に変換したくて..
296 名前:デフォルトの名無しさん [2007/11/27(火) 11:56:07 ] target="[^"]*"
297 名前:デフォルトの名無しさん [2007/11/29(木) 17:43:52 ] HTMLのコメントを取得するにはどうしたら良いでしょうか? <!--[^-->]*--> で試したのですが[^-->]だと各文字を含まないとなってしまうのでだめでした。 文字列を含まないって表現方法がわかりません。 お手数ですがよろしくお願いします。
298 名前:デフォルトの名無しさん mailto:sage [2007/11/29(木) 18:01:50 ] >>297 貪欲でないマッチ
299 名前:デフォルトの名無しさん [2007/11/29(木) 18:35:11 ] >>297 html パーサ使え
300 名前:297 mailto:sage [2007/11/29(木) 19:51:50 ] >>298 ありがとうございます。 貪欲でないマッチでググッた所無事解決しました。 >>299 プログラム内で使いたかったので、 パーサを使うとhtml記述ミスなどがあった場合に面倒なので正規表現を使う事にしました。
301 名前:デフォルトの名無しさん mailto:sage [2007/11/29(木) 23:53:17 ] >>299 アホ
302 名前:デフォルトの名無しさん mailto:sage [2007/12/02(日) 03:37:22 ] bregexp.dllを使って <th>ほげほげ<br/>ほげほげ</th> のような<th>で囲まれた内部の<br/>だけ削除したいのですが、 <br/>の数が不定で困ってます。どう書けばよいのでしょう?
303 名前:デフォルトの名無しさん [2007/12/02(日) 17:04:43 ] >>302 html パーサ使え
304 名前:デフォルトの名無しさん [2007/12/03(月) 18:49:06 ] 正規表現でand検索したいのですが どのようにすればいいのですか? 正規表現: Win.*Mac.*Linux.*Sun 上記のようにやると、順番が固定されてしまいます。 どのような順番でもいいので4つ入っていれば ヒットさせたいのです。
305 名前:デフォルトの名無しさん mailto:sage [2007/12/03(月) 19:19:07 ] >>304 肯定戻り読み
306 名前:デフォルトの名無しさん mailto:sage [2007/12/03(月) 21:22:52 ] (?=.*Win)(?=.*Mac)(?=.*Linux)(?=.*Sun).*
307 名前:デフォルトの名無しさん mailto:sage [2007/12/03(月) 23:37:29 ] NHKのFMの番組の曲の時間表示(全角の数字と '分'と'秒'から成る文字列で 末尾は必ず '秒' )を一気に半角数字と「分⇒m」「秒⇒s」のように一気に置換 する方法がありますか? 全角数字でも '2007年' のような文字列はそのま まにしたいのです。 【例】 '6分08秒' ⇒ 6m08s
308 名前:デフォルトの名無しさん [2007/12/04(火) 00:20:03 ] tr/時分秒/hms/
309 名前:デフォルトの名無しさん mailto:sage [2007/12/04(火) 09:06:00 ] >全角数字でも '2007年' のような文字列はそのままにしたい のなら >【例】 >'6分08秒' ⇒ 6m08s は '6分08秒' ⇒ 6m08s ならないといけないの? それとも【例】のようにして欲しいの?
310 名前:デフォルトの名無しさん mailto:sage [2007/12/04(火) 21:11:44 ] 正規表現処理系一般の話なら文字変換はダメだなあ
311 名前:デフォルトの名無しさん mailto:sage [2007/12/04(火) 21:38:52 ] tr/時分秒[0-9]/hms[0-9]/
312 名前:デフォルトの名無しさん mailto:sage [2007/12/04(火) 21:39:27 ] trはスレ違いだろ
313 名前:デフォルトの名無しさん mailto:sage [2007/12/05(水) 00:33:46 ] >>309 は日本語が読めないのだろうか?
314 名前:デフォルトの名無しさん mailto:sage [2007/12/05(水) 18:08:23 ] >>305-306 できました。ありがとうございます。
315 名前:デフォルトの名無しさん [2007/12/05(水) 19:45:45 ] URL が多数含まれる文章があるとき、その URL にマッチさせる正規表現を知りたいです。 マッチさせるのは “http://〜/” の部分で充分でして、それだけなら http:\/\/[^\/]+\/ でイケそうです。 ただ今回やりたいのは、特定のドメイン(というかサーバ)の URL はマッチさせない、ということです。 たとえば www.google.co.jp/ にはマッチさせたくない、ということです。 これはどんな書き方になるでしょうか? Perl な正規表現だと具合いいです。
316 名前:デフォルトの名無しさん mailto:sage [2007/12/06(木) 06:31:42 ] >315 >2
317 名前:デフォルトの名無しさん mailto:sage [2007/12/07(金) 07:08:24 ] フリーでとにかく早いのってどれ? 秀丸のやつ?鬼車?
318 名前:デフォルトの名無しさん mailto:sage [2007/12/07(金) 23:18:36 ] 秀丸は速くない。
319 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 14:11:45 ] >>317 秀丸のは確かに速い 速いけど、他で出来て秀丸で出来ない表現が多いし それを無理やり秀丸で表現すると結局遅くなることも多い
320 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 23:27:27 ] [0-1]?[0-9] これで2桁目に0か1が付くか付かないか という表現になりますか?
321 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 23:32:07 ] 日本語でおk それだと、0〜9 と 00〜19 にマッチ
322 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 23:38:08 ] すみませんここで聞いて良い事なのか解らないのですが、よければお教えください。 C/Migemo 1.2 リリース版 for Windowsに付属の辞書を読み込ませhoをmigemo_queryしてみたことろ ([ホ☆★ほ逋捕縫豊B萠萌]|ho|Ho)と、なぜかBが含まれた文字列がかえってきました。 この文字列を利用して検索をすると当たり前ながらBに反応してしまうのです。 そこで質問なのですが、どうしてBが含まれるのでしょうか? もしかして私の使い方が間違っているのでしょうか?
323 名前:320 mailto:sage [2007/12/09(日) 00:14:35 ] >>321 すいません、それが言いたかった ありがとう
324 名前:デフォルトの名無しさん mailto:sage [2007/12/09(日) 00:33:23 ] >>323 「すみません」だろ 日本から出て行けよ
325 名前:デフォルトの名無しさん mailto:sage [2007/12/09(日) 00:50:18 ] こらこら
326 名前:デフォルトの名無しさん mailto:sage [2007/12/09(日) 01:08:50 ] >>322 完全にスレ違いな気がするが、どこが適切か知らないので一応答えておくと、 ホウ素の元素記号がBだから。他にはsaで酸素のOが引っかかったりするはず。
327 名前:デフォルトの名無しさん mailto:sage [2007/12/09(日) 01:41:55 ] >>326 おおおおおおお! なるほど… おかげで謎が解けました ありがとうございました。
328 名前:デフォルトの名無しさん mailto:sage [2007/12/18(火) 00:38:45 ] ひゃ[あぁ゛]*うまひ[いぃ゛]*
329 名前:デフォルトの名無しさん mailto:sage [2007/12/18(火) 01:09:55 ] ひゃうまひ゛
330 名前:デフォルトの名無しさん mailto:sage [2007/12/18(火) 04:59:57 ] ひゃ゛゛゛゛゛うまひ゛゛゛゛゛゛゛
331 名前:デフォルトの名無しさん mailto:sage [2007/12/18(火) 12:24:04 ] /image/[00-31]_[00-1f].jpg ↑00〜31↑00〜1f(16進数) 正規表現でこのように設定したいのですがうまくいきません。 /image/(00_00、01_01・・・10_0a・・・31_1f) こういったものを書きたいのですが可能でしょうか?
332 名前:デフォルトの名無しさん mailto:sage [2007/12/18(火) 12:29:21 ] >>331 [] は一文字にしかマッチしないのでー。 正規表現はふつうは数値の範囲は指定できないのでー。 ([0-2][0-9a-f]|30|31)_[01][0-9a-f]\.jpg
333 名前:デフォルトの名無しさん mailto:sage [2007/12/18(火) 13:19:37 ] >>331 もしかして、 10進部分と 16進部分を対応させたいと思ってる? それだと正規表現だけでは簡単に書けないと思う。
334 名前:デフォルトの名無しさん [2008/01/05(土) 11:31:41 ] 日本語の話しになってしまいますが、質問させてください。 >検索対象に正規表現が一致した場合 と >検索対象が正規表現に一致した場合 どっちが正しいのでしょう? 前者が正しいような気がするのですが、よく判らなくなってきました
335 名前:デフォルトの名無しさん mailto:sage [2008/01/05(土) 12:04:31 ] 一致というよりマッチといいましょう。
336 名前:デフォルトの名無しさん mailto:sage [2008/01/05(土) 17:24:34 ] そういえばどっちも言うような気がする。 文脈によるというかどっちを軸に語るかによるんじゃないかな。
337 名前:デフォルトの名無しさん mailto:sage [2008/01/05(土) 17:36:47 ] 厳密に言うと受理だろうが、気にしすぎだとも思う
338 名前:デフォルトの名無しさん [2008/01/05(土) 21:41:39 ] プログラムの 「前」 ってどっちですか?
339 名前:デフォルトの名無しさん mailto:sage [2008/01/05(土) 21:42:19 ] つまらんコピペだな
340 名前:デフォルトの名無しさん [2008/01/05(土) 21:45:36 ] じゃね? => ぢゃね?
341 名前:デフォルトの名無しさん [2008/01/06(日) 14:50:28 ] ここのFAQの中の手作業でNFAを作成ってページなんだけど capslockabcjp.kitunebi.com/handmade.html /***/にマッチしないきがするけど。
342 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 15:05:50 ] だからなんだよ。
343 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 15:29:12 ] 〠
344 名前:334 mailto:sage [2008/01/06(日) 15:59:55 ] レス有難うございます。やっぱり気にし過ぎですかね。 気にしない事にします。
345 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 23:17:00 ] if (ch == '/') st = 1; else if (ch == '*') st = 4; // 追加 図のほうに S4->S4 [label="*"]; だね
346 名前:デフォルトの名無しさん mailto:sage [2008/01/07(月) 00:05:54 ] >検索対象(の文字列)が正規表現(で表されたパターン)にマッチした場合 パターンは固定だから、俺はこっちがしっくりくる
347 名前:デフォルトの名無しさん [2008/01/10(木) 03:38:22 ] "one two three four" "one three two four" にしたいのです。正規表現でスワップ(位置交換)したいんですが ググってもあんまりなかったです。 一応、java.util.regex.*; 使ってます。
348 名前:デフォルトの名無しさん mailto:sage [2008/01/10(木) 03:41:41 ] "one two three four five" "one four three two five" 1 2 3 4 5 1 4 3 2 5 でした。
349 名前:デフォルトの名無しさん mailto:sage [2008/01/10(木) 16:36:35 ] Pattern pattern = Pattern.compile("^(.*?)\\s+(.*?)\\s+(.*?)\\s+(.*?)\\s+(.*?)$"); Matcher matcher = pattern.matcher("one two three four five"); String str = matcher.replaceFirst("$1 $4 $3 $2 $5"); とりあえず
350 名前:デフォルトの名無しさん mailto:sage [2008/01/10(木) 17:42:18 ] >>349 おお、ありがとうございます。 java.util.regex.Pattern; のAPI見ても \1 は載っていても、$1 は載ってなかったんですができるんですね。 ところでAPI(java, perl, ruby, js)見ても良く分かり辛いのですが、\n, $n のnはいくつまで参照できるんでしょうか。 nは10進表記みたいですけど、 \0 - 1から9までは dec \1 ... \9 - dec \10, \11 ... \21 - oct \010, \011 ... \025 \0nnn とすれば自動で8進表記 \nnnn とすれば自動で10進表記 参照は \1 <=> $1 API(java)ではこういう感じみたいなんですけど実際はどうなんでしょうか。
351 名前:デフォルトの名無しさん [2008/01/10(木) 21:27:54 ] "\1" じゃなく、"\\1" じゃないのかな。 java コンパイル ⇒ 正規表現コンパイル つまり2回コンパイルされる事に注意。 ここらへんの理屈がわかってないとツライよ。
352 名前:349 mailto:sage [2008/01/11(金) 00:55:38 ] >>350 とりあえず最大数は気にしなくていい、[\$]1000とかでもいけるように見える Petternクラスでは0始まりは8進数になるけど、Matcherクラスでは10進のまま PetternのescapeとMatcherのappendReplacementあたりのソースを見るといい うまくまとめられてないけど、2ch止まるらしいので今のうちに書いとく
353 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 17:24:33 ] APIソース見てるんですか! そこまで頑張らなくてもどこかにあるJavaのフォーラムで質問した方がいいんじゃないですか?
354 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 17:39:56 ] 質問者よりも回答者の方が問題解決に躍起になってるスレ。
355 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 20:10:07 ] sedを使ってC言語のコメントを全て削除するにはどうやればいいんですか? コメントが1行に収まっているなら簡単なんだけど、複数行にまたがる場合にどうすればいいかわからない
356 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 20:22:05 ] >>355 パターンスペースとホールドスペースを駆使すればできなくはないが、お勧めできない。 awkかperl、或いは最近のスクリプト言語を使う方がいい。
357 名前:デフォルトの名無しさん mailto:sage [2008/01/12(土) 08:24:05 ] 俺には無理ぽ --------------------------------------- # decom.sed /\/\*/ { :loop /\*\// { b break } N b loop :break s/\n/ /g s/\/\*.*\*\///g } ---------------------------------------
358 名前:デフォルトの名無しさん mailto:sage [2008/01/12(土) 08:30:01 ] ttp://main.rtfiber.com.tw/~changyj/sed/html/p.20010226b.html ちょろっと探したらすぐ見つかったしorz
359 名前:デフォルトの名無しさん mailto:sage [2008/01/12(土) 09:21:03 ] でも>358だと文字列中の/*にも反応しちゃうんだよね。 本格的に使うのは、ちょっと無理。
360 名前:デフォルトの名無しさん mailto:sage [2008/01/12(土) 09:51:59 ] プリプロセッサ指令をプリプロセスで消されないよう加工 ↓ プリプロセッサにかける ↓ 加工したプリプロセッサ指令を元に戻す
361 名前:デフォルトの名無しさん [2008/01/14(月) 12:03:15 ] 正規表現のエスケープしなくてもいい記号がわからないので、 とにかく記号という記号はエスケープしていて結構カオスになっているのですが、 エスケープしなくてもいい記号一覧とかどっかにありませんか? !"#$%&'()-=^~\|@`[{;+:*]},<.>/?_ これが \!\"\#\$\%\&\'\(\)\-\=\^\~\\\|\@\`\[\{\;\+\:\*\]\}\,\<\.\>\/\?\_ こんな感じに・・・
362 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 12:22:13 ] 半角スペースって普通に半角スペースをいれるか\x20とかくかどっちがいいんですか?
363 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 12:23:19 ] 普通に半角スペースを
364 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 12:40:39 ] >>363 レスありがとう。 普通に半角スペース使うことにしますね。
365 名前:361 mailto:sage [2008/01/14(月) 15:43:29 ] 完全かどうかはわかりませんがWikipediaにのってました。 というわけで自己解決しました。
366 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 18:31:15 ] >362 \s
367 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 18:36:27 ] >>366 秀丸じゃ使えないんだよな
368 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 18:37:44 ] >>366 つーか、それホワイトスペース一般じゃないか?
369 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 18:55:23 ] ホワイトベースに見えた
370 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 19:43:17 ] セイラさんにハァハァしすぎw
371 名前:デフォルトの名無しさん [2008/01/14(月) 20:00:29 ] \s は改行にもマッチすることがあるから 半角スペースの代わりにはならないよ
372 名前:デフォルトの名無しさん [2008/01/14(月) 22:22:22 ] 特定の英単語が含まれているかをチェックする正規表現を教えてください。 This is a pen. に対してhisをチェックした場合に引っかからないのが正しいです。 英単語の定義は[A-Za-z]{3,}とする予定で、単語の間はカンマやハイフン、セミコロンなどもあり。 前後が[^A-Za-z]だけだと行頭行末がダメ。。。
373 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 22:23:48 ] >>372 \b
374 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 22:28:09 ] 非語境界ってやつだな。
375 名前:372 mailto:sage [2008/01/14(月) 22:28:22 ] >>373 ありがとう。知らんかった。首吊ってくるわ。。。
376 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 22:41:54 ] イ`
377 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 22:44:30 ] \sはタブにもマッチするな まあ既に>>368 が言ってるけど
378 名前:デフォルトの名無しさん [2008/01/17(木) 16:41:25 ] こんにちは。質問です。 @book{sagan:1954, author = {Fran\c{c}ois Sagan}, title = {Bonjour Tristesse} } こんな感じの文字列(BibTeX)を取り込んでハッシュにするためには どのような正規表現を用いればよいでしょうか。 ポイントは 1. コンマで分割する。 2. {}の中のコンマは無視する。 というあたりだと思うのですが、特に括弧の入れ子をどう処理するかで困っています。 使用言語はRubyです。よろしくお願いします。
379 名前:デフォルトの名無しさん mailto:sage [2008/01/17(木) 19:22:45 ] 正規表現は再帰をあつかえない。即ち括弧の対応を確かめることが出来ない。 上限をハードコードするなら可能ではあるが、普通にパーサを書いたほうがいいと思う。
380 名前:デフォルトの名無しさん mailto:sage [2008/01/17(木) 21:31:48 ] 新しいPerlへようこそ
381 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 13:21:50 ] >>380 新しい Perl でも、正規表現 *だけ* では無理じゃね?
382 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 19:34:46 ] ソースコードやXMLはネスト構造を持つから正規表現は向かないよな。 Javaとかもソースコードパーサー用の汎用クラスがあるけど、何故か使われなかったり。 BNF法の知識がデベロッパレベルで浸透してないから、無理も無いけど。
383 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 09:57:54 ] 仕用言語はPHP5.2.4です。UTF-8での運用をしております。 テキストの中のURLをリンクしたいのですが、 $pat = "(https?:\/\/[-_.!~*'()a-zA-Z0-9;/?:@&=+$,%#]+)"; $rep = "<a href=\"\\1\" target=\"_blank\">\\1</a>"; $body = ereg_replace($pat, $rep ,$body); これだと、2ちゃんねるみたく、ttp:から始まったURLの場合リンクできません。 無駄だと思いつつも書き方がわからないので、下記の処理を付け加えましたが、 <a href="hoge">hoge</a> ↑この部分が何故か文字化けしてしまいます。 $pat2 = "[^h](ttps?:\/\/[-_.!~*'()a-zA-Z0-9;/?:@&=+$,%#]+)"; $rep2 = "<a href=\"h\\1\" target=\"_blank\">\\1</a>"; $body = ereg_replace($pat2, $rep2 ,$body); スマートに書く方法を教えてください。
384 名前:デフォルトの名無しさん [2008/01/24(木) 10:34:25 ] すまない ageさして下さい
385 名前:デフォルトの名無しさん [2008/01/24(木) 10:51:13 ] >>383 [^h] じゃなくて h? じゃない?
386 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 11:20:57 ] >>385 dです ご指摘のように $pat2 = "h?(ttps?:\/\/[-_.!~*'()a-zA-Z0-9;/?:@&=+$,%#]+)"; $rep2 = "<a href=\"h\\1\" target=\"_blank\">\\1</a>"; $body = ereg_replace($pat2, $rep2 ,$body); こうすることで動きました ありがとうございました
387 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 14:34:41 ] h?っていらなくない?
388 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 14:46:58 ] http: ってちゃんと書いたときに h が増殖しちゃわない?
389 名前:388 mailto:sage [2008/01/24(木) 14:51:28 ] スマソ、勘違い。 h? を省くと、 http: ってちゃんと書いたときに、こんなふうに h が出てきちゃう。 h<a href="hoge ">ttp://hoge</a>
390 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 21:19:55 ] 全体を括弧でくくってそれをテキストに指定、 内側のh?(~~をリンクに指定すればいいと思う。
391 名前:デフォルトの名無しさん [2008/01/24(木) 21:49:52 ] $test = '<a href="localhost/ ">LINK29</a>'; $test = preg_replace('{<[Aa] .+?>LINK([1-9][\\d\\-]*)</[Aa]>}' ,page_href('$1') ,$text); 上記の正規表現で得た29という数字をpage_hrefという関数に渡したいです。 29という数字は取れているみたいですが、関数内には29という数字が渡ってきておりません。 preg_replace内でどうすれば関数に数字を渡せますか? ちなみにPHP5系です。
392 名前:デフォルトの名無しさん [2008/01/24(木) 21:52:25 ] preg_replace内の$textは$testです すみませんでした
393 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 23:30:33 ] >>390 kwsk
394 名前:デフォルトの名無しさん [2008/01/24(木) 23:58:17 ] >>393 $pat2 = "(h?(ttps?:\/\/[-_.!~*'()a-zA-Z0-9;/?:@&=+$,%#]+))"; $rep2 = "<a href=\"h\\2\" target=\"_blank\">\\1</a>"; $body = ereg_replace($pat2, $rep2 ,$body); ↑こういうことじゃね?
395 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 00:14:49 ] >>391 そのくらいの正規表現ならPHP使いなら大抵知ってるからPHPスレでいいと思うよ で、関数に引数を渡すにはその引数を評価してからじゃないと渡せない というわけでまずは preg_replace() の引数である page_href('$1') を評価する でもこの時点で preg_replace() は評価されてないので $1 は未定義 preg_match() を使って二つに分けて書くのが普通だろうけど どうしても preg_replace() ひとつで済ませたい場合は e 修飾子を使ってこう書く $test = '<a href="localhost/ ">LINK29</a>'; print preg_replace('{<[Aa] .+?>LINK([1-9][\\d\\-]*)</[Aa]>}e', 'page_href($1)', $test); ただこういう謎コード書いて冷たい目で見られても知らない
396 名前:デフォルトの名無しさん [2008/01/27(日) 10:16:29 ] BREGEXPのC言語のラッパーライブラリがあったら教えてください。 BREGEXPでなくても他に使いやすいライブラリがあれば教えてください。
397 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 11:14:06 ] C 言語なら PCRE とか鬼車で良いのではないかと。
398 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 12:52:37 ] >>396 元々Cだしなぁ。ラッパーに何を期待してる? それはそれとして、素のBREGEXPは古いのでやめておいた方がいい。 いくつかバグも見つかっているようだし。せめてbregonigにすべきかと。
399 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 12:55:52 ] RE *re = ReCompile("/(\d+)/"); if(ReMatch(re, s)) { printf("%s", re->d1); } ReFree(re); これくらい簡単なのは確かに欲しい。
400 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 18:22:16 ] みんながCのアプリをC++でコンパイル通してくれればfreeもなしで if (/([0-9]+)/ == str) ... こうできるけどね。 クラス定義とかしなくていいからさぁ、 C++のランタイムにしてくればモジュール提供する側がラクなんだよなぁ
401 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 19:22:38 ] 世の中の全てプログラム言語はC++でいいと?
402 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 19:37:07 ] C99
403 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 14:08:08 ] a b c aa bb cc aaa bbb ccc これのインデントあわせって正規表現だけでできますか?perlです。
404 名前:デフォルトの名無しさん [2008/01/29(火) 14:41:11 ] <A HREF="hogehoge.jp/************** ">hogehoge.jp/**************</A> <A HREF="hogehoge.jp/************** ">hogehoge.jp/**************</A> …以下続く という文字列があるのですが、**************の部分に暗号化された文字(例:=7%be%8e%e4)が50文字くらい並んでいて 毎回文字数や形式が変動してしまいます。 <A HREF=" のほうはいいのですが、 HTML上に表示される文字のほうも暗号文字になってしまうので困っています。 正規表現で、HTML上に表示される文字のほうだけ、「リンク」という文字に変える方法はありますでしょうか?
405 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 15:32:43 ] >>403 右寄せ?左寄せ? まあ無理なんじゃない >>404 pack形式と実行環境書け
406 名前:405 mailto:sage [2008/01/29(火) 15:42:18 ] >>404 の例は「美人」だと思われるが、それでいいのか? あとhogehogeやめれexampleにしろ
407 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 15:55:11 ] >>404 です 実はプログラミングを知らないので、実行環境はテキストです… 秀丸でできればおkです…
408 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 19:56:06 ] >>403 正規表現では無理だろう。 幅固定なら awk が楽だが、 最長のに合わせるんだったら perl で普通に ガシガシ書いてきゃいいんじゃね?
409 名前:デフォルトの名無しさん mailto:age [2008/01/30(水) 00:44:52 ] perlでweb製作しています。 $txt の中の href="URL" の中のURLを http:example.net/test.cgi?url=エンコードしたURL の形に一括変換したいです。 たとえば href="search.com/str.cgi?first=1&p=%BA%C7%B9%E2 " href="http:example.net/test.cgi?url=http%3A%2F%2Fsearch.com%2Fstr.cgi?%2Fsearch%3Ffirst%3D1%26p%3D%25BA%25C7%25B9%25E2" のようにしたいです。 $txt内には複数のhref=""があり、href=""外にもURLがあり、その部分は変換不要です。 $cgi = "http:example.net/test.cgi?url="; $txt =~ s/(href\=\")([\w\.\~\-\/\?\&\+\=\:\@\%\;\#\%\$]*\")/$1&cgi$2/g; $2の部分をエンコードすればよさげなのでエンコード法を調べてみましたが↓を↑に組み込み方がわかりません。 どなたか、お教えください。 $str =~ s/([^\w ])/'%' . unpack('H2', $1)/eg;
410 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 01:18:38 ] use strict; my $txt = <<TXT; href="search.com/str.cgi?first=1&p=%BA%C7%B9%E2 " href="search.com/str.cgi?first=1&p=%BA%C7%B9%E2 " TXT $txt =~ s{(?<=href=").*?(?=")} { no locale; sprintf q{http:example.net/test.cgi?url=%s}, do{$_ = $&; s/([^\w ])/'%' . unpack('H2', $1)/eg; tr/ /+/; $_} }eg; print $txt;
411 名前:デフォルトの名無しさん mailto:age [2008/01/30(水) 01:26:23 ] >>410 THANKS なんか、できそうですが、PERL事態初心者で構文自体は理解できませんorz
412 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 11:34:55 ] echoが含まれない行の検索って、java正規表現でできますか? ^.(?<!echo)*$ ではできませんでした。
413 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 11:45:01 ] >>412 すいません。できました。 下の2つともできたのですが、「.」のおく位置で何か違いはあるのでしょうか? ^(.(?!echo))*$ ^((?!echo).)*$
414 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 13:56:44 ] それ上手く動かないだろ
415 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 01:40:06 ] ふつうは^(?!.*echo) これでだめなら ^(?!.*echo).*でもいい >>413 1つ目はダメ。たとえば次のような行: echo このeを.で評価したとき、継続の文字はcho。 echoという文字が続いているわけじゃないから、マッチは成功してしまう。 2つ目はうまくいくだろう。
416 名前:デフォルトの名無しさん [2008/02/01(金) 00:31:08 ] 質問です、PHPにおいてファイルパスの正規化をしています。 // テスト文字列、"/test/oame/doe/0"にしたい。 $location = "/test/./oame//doe/abc/../0/"; // 置き換え部分 $location = ereg_replace("//+","/",$location); /* "//" -> "/" */ $location = ereg_replace("/\./","/",$location); /* "/./" -> "/" */ $location = ereg_replace("/.+?/\.\./","/",$location); /* "/___/../" -> "/" */ $location = ereg_replace("/$","",$location); /* 末尾の"/"を削除 */ ereg_replace3番目の、/../の処理がうまくできていません、 $locationが空になります。これはどのように記述したらいいのでしょうか?
417 名前:デフォルトの名無しさん [2008/02/01(金) 00:51:28 ] $location="/test/./oame//doe/abc/../0/"; $x=$location.split('/'); $location='/'+$x[1]+'/'+$x[3]+'/'+$x[5]+'/'+$x[6]+'/'+$x[8];
418 名前:デフォルトの名無しさん [2008/02/01(金) 01:15:56 ] phpよく知らんけどこんなとか? $location = ereg_replace("/[^/]+?/\.\./","/",$location); /* "/___/../" -> "/" */
419 名前:416 [2008/02/01(金) 02:04:34 ] どうもPHP固有の仕様に関することかもしれないので、 そっちで聞いてみたいと思います。 どうもありがとうございました。
420 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 13:56:31 ] .(?!xx)* は.*中に「xx」がない、との解釈になるのでしょうか? よって下記とは異なる、でよろしいでしょうか。 (?!xx).*
421 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 19:08:06 ] 正規表現で遊べないかと考えていたんけど、みさくら語を正規表現で表すとしたらどうやる?
422 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 19:56:32 ] ぐぐったら出てくるじゃないか ttp://home.1555.info/misakura.html とりあえず上のJavaScriptの意味を調べてみては その過程で正規表現より他に必要なものが見つかるはず
423 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 09:29:34 ] マッチさせた後どう処理するかの方が肝なので、正規表現だけ考えても仕方ないかと。
424 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 21:45:00 ] 蒲焼《か はやき》 深川《ふか がわ》 ↑のような《》に挟まれた半角スペース、全角スペースを指定する正規表現はどう書けばいいか教えて下さい。よろしくお願いします。
425 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 03:36:32 ] >>424 >>1
426 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 17:50:02 ] ********aaa aa * ****age p * kk ** *aaaa のようなものの*を行頭から連続している部分だけ-に換えたいんですが --------aaa aa * ----age p * kk ** -aaaa こういうような二重絞り込みみたいなものってperlのワンライナーでやる方法が知りたいです perl -pe '/^[\*]*/ & tr/*/-/' みたいな感じで条件を合成できそうな気がするんですが
427 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 18:02:31 ] perl -pe 's/^\**/q{-} x length($&)/e'
428 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 18:46:33 ] どうもありがとうございました 正規表現だけじゃできないんですね perlも勉強することにします
429 名前:424 mailto:sage [2008/02/08(金) 19:34:16 ] ソフトは秀丸使ってます。実装言語とかよくわかりません。
430 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 19:58:15 ] テンプレのサイトで少しは勉強してきなよ
431 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 20:10:24 ] やってみって《》とその中までは指定できたけどその先がよくわからんのです。
432 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 20:27:02 ] [《 》] ↑だと《》も一緒に指定してしまうし、だめだ。
433 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 01:36:18 ] あきらめてこれで検索したら? \f《[^《]*\f \f[^》]*》\f 置換するなら"\1置換後文字\3"とかで指定すればいいんだし。
434 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 01:09:08 ] phpなんですが、たとえば $a = "aiueo"; $b = "aiu"; と、あるときに 変数$bの中身(aiu)が$aに含まれるかを調べたいんですがどうしたらいいでしょうか。
435 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 01:17:22 ] strstr
436 名前:434 mailto:sage [2008/02/12(火) 11:16:40 ] わかりました!ちょっと難しく考えすぎていたようです。 正規表現使う必要ないんですね。 ありがとうございます。
437 名前:デフォルトの名無しさん [2008/02/13(水) 00:28:11 ] ・・・これだ
438 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 15:18:34 ] phpです。 htmlファイル中の <p> test あああ いいい ううう </p> を preg_match('/<p>((.|\n)+)<\/p>/', $source, $test); でマッチさせると $test[0]には全体、[1]には一致した部分が入っていて正しいのですが [2]に空白も入ってしまっているようです。 Array ( [0] => <p> test あああ いいい ううう </p> [1] => test あああ いいい ううう [2] => ) このようになります。 上手く間にある文字列だけをマッチさせる方法はないでしょうか。
439 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 15:26:34 ] >>438 二個目のカッコ (.|\n) にマッチした箇所がキャプチャされてるね。 後方参照されないように (?:.|\n) とか。 ?: の意味は自分で調べて。
440 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 15:34:54 ] 素早いレスありがとうございます。調べてみます。
441 名前:デフォルトの名無しさん [2008/02/15(金) 18:54:31 ] Perl5.6でIPアドレスの範囲と場所をマッチングさせたいと思っています。 192.168.1.* を東京 172.16.0.* 〜 172.16.3.* を大阪 という場合はどのように判定させればいいのでしょうか。 Perl歴3日目なもんで・・・どなたかお力を。
442 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 19:00:38 ] とりあえず、正規表現でやろうとするのは間違ってますよ。 split /\./ してからごにょごにょするか、 CPANのNetAddr::IPのようなモジュールが使えないか検討してください。
443 名前:デフォルトの名無しさん [2008/02/15(金) 19:04:12 ] なるほど。分けてから比較するんですね。 方向性が分かっただけでも助かりました。 ありがとうございました。
444 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 20:05:50 ] そういう場合はサブネットマスク使ったほうが綺麗にかけるぞ
445 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 22:54:30 ] 255.255.252.0とかで切っててもいけるもんなんですか?
446 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 13:40:36 ] bitでかんがえてみろ
447 名前:デフォルトの名無しさん [2008/02/19(火) 10:54:06 ] テキストエディタで検索・置換をするのに 特定のワードで始まる行末7文字の指定はどう書けばいいでしょうか? それとDOSのワイルドカードだと AA○○.txt AA××.txt とあったときren AA*.txt BB*.txtとすれば BB○○.txt BB××.txt となったと思うのですが、正規表現でも同様な事ができますか? こちらもテキストエディタでの検索・置換です
448 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 15:07:30 ] PHP正規表現チェッカー ttp://www.rider-n.sakura.ne.jp/regexp/regexp.php
449 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 17:34:36 ] >特定のワードで始まる行末7文字の指定 これの意味がわからない、例を出せ例を
450 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 17:36:10 ] テキストエディタっつってもできることできないこといろいろあるので 具体的なソフト名を出した方が回答が得られやすいと思われ。
451 名前:デフォルトの名無しさん [2008/02/19(火) 17:48:38 ] コミュニケーション能力が不足しているな。 エディタの使い方とか正規表現とか覚える前に 人間として最低限必要な事を先に覚えたほうがいいんじゃない?
452 名前:447 [2008/02/19(火) 17:55:55 ] 答えられないカスどもは黙っててください わかる人だけが、質問に答えてくれればいいです では引き続きよろしくお願いします
453 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 18:07:23 ] 晩飯なににすっかなー
454 名前:デフォルトの名無しさん [2008/02/19(火) 18:37:56 ] サンマの缶詰が安かったから、これで炊き込みごはん。 米1合を洗ってダイソーで買った105円の土鍋に入れる。 そのままサンマの缶詰1缶まるごとブチ込む。 水加減は、缶詰の水分と合わせて200mlくらいになるように調節。 30分くらい浸して火にかける。 最初は中火より強め。5分くらいで吹いてくるから弱火にして、さらに5分。 (赤子泣いてもフタ取るんじゃないぞ) 炊き上がったら5分むらす。 缶詰はサンマでなくても、鯖とかイカとか赤貝とか、好みのでOK。 味が濃い目の缶詰がいいな。味が薄いときは醤油や砂糖やみりんを加えてから 炊くといいよ。
455 名前:447 [2008/02/19(火) 18:40:47 ] エディタはJedit X1.11です 例) あああ〜〜〜1234567 いいい〜〜〜1234567 ……… ……… 〜〜〜は文字数などもバラバラな任意な文字列(全角含む) 行頭『あああ』で始まる行の、行末『1234567』を 別の文字列『abcd』等に置換したいのです
456 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 18:43:41 ] あああ腹へったなー
457 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 20:02:10 ] (?<=あああ).*(?=.{7}) -> abcd
458 名前:447 [2008/02/19(火) 21:51:39 ] >>452 おいおい気がついたらとんでもない事勝手に書いてるな〜(苦笑 >>457 ありがとうございます 戻り読みと先読みですか、なるほど! ですが、これだと『〜〜〜』の部分になってしまいますよね……
459 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 23:38:16 ] 1合炊きの土鍋なんてあるのか 今度ダイソーに行ったら見てみよう
460 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 23:44:48 ] >>459 中国製の土鍋なんてどんな毒が混ざってるか分からんぞ。
461 名前:デフォルトの名無しさん mailto:sage [2008/02/20(水) 00:38:19 ] ニ○リの土鍋以外にでたっけ
462 名前:デフォルトの名無しさん mailto:sage [2008/02/20(水) 08:47:18 ] >>452 こういうことすぐ言う人って、昔いじめられてた人なんでしょ?可哀想にね
463 名前:デフォルトの名無しさん mailto:sage [2008/02/20(水) 11:24:13 ] めんどくさがりなので俺なら↓でやってしまうな /^(あああ.*?)(.{7})$/\1abcd/
464 名前:447 [2008/02/21(木) 18:24:17 ] >>463 ありがとうございます いろいろ調べながらやってますがダメなようです もうちょっとがんばってみます
465 名前:デフォルトの名無しさん [2008/02/21(木) 18:30:35 ] せっかくヒントもらえたんだし、頑張ってもらわんとな
466 名前:デフォルトの名無しさん [2008/02/22(金) 00:06:24 ] >>396 いまラッパーつくってるよ ちょっとまてて
467 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 13:22:33 ] 2008-03 発売(予定) 「詳説 正規表現 第3版」 (Jeffrey E.F. Friedl 著 / 長尾高弘 訳) ISBN 978-4-87311-359-3 定価 5,040円
468 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 16:48:39 ] おや、和訳出るのね。今回は田和さんじゃないんだ もったいない気もするがロングテールの人なら鉄板か
469 名前:466 [2008/02/22(金) 21:49:08 ] できましたよ 使ってみてください サポートはここで fx10.web.fc2.com/index.html
470 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 03:35:41 ] >>468 原書では追加はPHP関連とかがあったけど、以前のものからの改訂部分って ほとんどなかったんだよね。 訳しなおしてるのかなあ?
471 名前:デフォルトの名無しさん [2008/02/23(土) 20:12:38 ] php4なのですが、 <img src="new.gif" alt="New" width="10"> を正規表現で置換してaltの値だけを表示にすることは出来ませんでしょうか よろしくお願いします
472 名前:デフォルトの名無しさん [2008/02/23(土) 20:21:04 ] <img src=\".*?\" alt=\"(.*?)\".*?> \1 でできたよ
473 名前:デフォルトの名無しさん mailto:sage [2008/03/05(水) 20:28:49 ] 秀丸で検索するときに文字列Aを含んで且つ文字列Bを含まない行全体を指定したいのですが、 (含む行) ^.*文字列A.*\n (含まれない行) ^((?!文字列B).)*\n で個別にはわかるんですがこの2つを合わせてて検索したいのですがどう書けばいいのでしょうか?
474 名前:デフォルトの名無しさん mailto:sage [2008/03/05(水) 23:21:55 ] (^.*文字列A.*\n|^((?!文字列B).)*\n)
475 名前:デフォルトの名無しさん mailto:sage [2008/03/05(水) 23:22:43 ] あ、間違えたわ
476 名前:デフォルトの名無しさん [2008/03/06(木) 01:07:25 ] dll | ^ dll
477 名前:デフォルトの名無しさん mailto:sage [2008/03/07(金) 08:06:30 ] 微妙にイケメソがいるな
478 名前:デフォルトの名無しさん mailto:sage [2008/03/07(金) 08:12:32 ] ☞
479 名前:デフォルトの名無しさん mailto:sage [2008/03/07(金) 08:35:28 ] (6 ’) (6
480 名前:デフォルトの名無しさん [2008/03/07(金) 17:01:30 ] 質問です。 小数点以下の右端の0を全部取り除きたいです。 小数点以下が0しかない場合は、小数点も含めて取り除きたいです。 3.00 → 3 3.02000 → 0.02 どう書けばよいでしょうか? sprintf("%g", num) とすればいけるかと思いましたが、numが19120730.0000の場合に 1.91207e+07となり、使えませんでした。 perl5.8です。宜しくお願いします。
481 名前:デフォルトの名無しさん [2008/03/07(金) 17:04:54 ] ____ // ̄ ̄`| /|断 だ | / |る が | /イ \___| / |// /| | /_\ /_/_レ| ∧o>/ イ≡三\| /ミ// r-<彡/| / /彡 ヾ\_O> | /iハ-イ)  ̄ヽ彡| `/ i∧二 // | / (`ーv\ // /| `<j`ーヾ_ゝ // (r| `< ノ /リ| `< //7| `</ / | `<|
482 名前:デフォルトの名無しさん mailto:sage [2008/03/07(金) 18:16:02 ] 正規表現関係ないな。脳みそつかえ
483 名前:デフォルトの名無しさん mailto:sage [2008/03/07(金) 20:32:03 ] >>480 s/\.?0+$//
484 名前:デフォルトの名無しさん mailto:sage [2008/03/08(土) 10:40:12 ] 約2万件のデータがあるのですが 使用する文字が半角全角交じりで途中に記号やスペースもあるかもなのです 文字数もわかりません 2つのキーワードで全部取れますか? キーワード@東京都 キーワードA3-5-7 何区何町だったか思い出せません>< 何故か357って数字だけ覚えてました^^
485 名前:デフォルトの名無しさん mailto:sage [2008/03/08(土) 10:59:33 ] 東-京/都 とかなってたら終わりだな
486 名前:デフォルトの名無しさん mailto:sage [2008/03/08(土) 11:44:11 ] 東京都 市ってなかったっけ?w
487 名前:デフォルトの名無しさん mailto:sage [2008/03/08(土) 12:23:42 ] 東京都.*?[33三].+?[55五].+?[99九] で抽出してあとは手動かなぁ、俺がやるなら 漢数字が入る地名とかいちいちはじいてられないし
488 名前:デフォルトの名無しさん mailto:sage [2008/03/08(土) 14:42:33 ] <object> ←これ検索したいんですお願いします
489 名前:デフォルトの名無しさん mailto:sage [2008/03/08(土) 17:32:38 ] /<object>/
490 名前:デフォルトの名無しさん [2008/03/09(日) 01:17:00 ] >>1 みたいにアンカー機能を付けたいのですがどのように書けば良いのでしょうか?
491 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 10:41:21 ] >>490 >>1 を見てその質問の仕方なのかよ!?
492 名前:デフォルトの名無しさん [2008/03/10(月) 21:13:30 ] <hoge aaa="aa\"bb<cc>dd" zzz="ee\"ff<gg>hh">value</hoge> ↓ value と置換する正規表現を教えて下さい 言語は JavaScript で、戻り読みは使えません
493 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 21:23:42 ] 正規表現よく分かりません>< <[^/]+>([^<]+)</.+>
494 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 02:03:14 ] 入門 正規表現 サンプルがJavaで吹いた
495 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 06:12:35 ] >492 ブラウザのJavaScriptならXPathのほうが速くて正確
496 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 06:39:06 ] >>495 ブラウザじゃないです 取得したページからタグを削除することを目的としています
497 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 06:41:25 ] >>495 493の正規表現でいいんじゃね?
498 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 08:57:13 ] 秀丸ではスペースは直打ちがデフォですか? 何か気持ち悪い。
499 名前:デフォルトの名無しさん [2008/03/12(水) 01:26:27 ] Perlの正規表現で[^\.-z]っていうのがあったんですけどこれってどういう文字が当てはまるんですか?
500 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 01:36:32 ] >>499 ASCIIのコード表でも見てみればいいんじゃないかな
501 名前:デフォルトの名無しさん [2008/03/12(水) 06:02:36 ] >>500 見てみたけどピリオドのほうがzより後に来てるのでこれおかしいんじゃないのと思って質問したのですが・・・
502 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 06:04:10 ] どこの表にそんなでたらめが書いてあるんだよ
503 名前:499 [2008/03/12(水) 06:07:45 ] あ、あれ・・・ もう一回調べてみたらピリオドのほうが先に来てる・・・
504 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 22:09:17 ] >>503 あー、すまん、書き間違えてたので修正しといた。
505 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 22:16:00 ] ってのは冗談として、 そういう ASCII コード表の順に大きく依存するような範囲指定を書くのは良くないと思う。 バグってハマったときに ASCII コードを凝視しないと解決いけなくなるし、移植性も低くなる。 アルファベットと記号は分けて書くようにするとか、文字クラスなどを利用した方が良い。
506 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 23:26:03 ] >>505 言うことは非常によくわかる。 文字クラスを使うべきっていうのには完全に同意。 でもASCIIコード順は移植性十分にある気がする。 とりあえず俺はASCIIコードで範囲指定するのは問題ないと思う。
507 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 23:49:22 ] 個人的には OSの事情とかLOCALEまわりのランタイムの完成度とか POSIX文字クラスは警戒心をくすぐるものだw
508 名前:デフォルトの名無しさん mailto:sage [2008/03/13(木) 02:07:43 ] こんばんは! はじめましてよろしくです^^ キーワード@とキーワードAを同時にグレッペ出来る機能のあるツールはありますか 1000ファイル単位で処理したいんですが 1ファイルに@AA(Aは同じものが連続である) これを行ごとgrepしたいんです Aについては1つ削除がいいです よろしくお願い致します キーワード@東京都 キーワードA性別A(性別マーク)
509 名前:デフォルトの名無しさん mailto:sage [2008/03/13(木) 02:25:18 ] 日本語でおk
510 名前:デフォルトの名無しさん [2008/03/13(木) 03:23:27 ] 3回読んだが意味わからん
511 名前:デフォルトの名無しさん mailto:sage [2008/03/13(木) 03:30:34 ] なんとなくわかった気がしたけど最後の1行でぶちこわされた
512 名前:デフォルトの名無しさん [2008/03/13(木) 07:22:30 ] グレッペ
513 名前:デフォルトの名無しさん mailto:sage [2008/03/13(木) 07:40:30 ] こんばんは迄呼んだ。
514 名前:デフォルトの名無しさん mailto:sage [2008/03/13(木) 08:09:40 ] グレッペのあたりで断念した
515 名前:デフォルトの名無しさん mailto:sage [2008/03/13(木) 09:04:25 ] デフォルトのまで読んだ
516 名前:デフォルトの名無しさん mailto:sage [2008/03/13(木) 09:11:02 ] 1ファイルに3つのキーワードが先頭から 都道府県名 性別 性別を表す何らかのマーク の順番で並んでいて、 2つめと3つめは同じ性別を意味する別表現である。 例えば2つめが「男」だったら、3つめは「♂」となる。 これをgrepしたいが、性別については一つ消したい。 こんな感じか? grepだけじゃ無理だからsedかawk使え、でおk?
517 名前:デフォルトの名無しさん mailto:sage [2008/03/13(木) 09:48:33 ] わろた
518 名前:デフォルトの名無しさん mailto:sage [2008/03/13(木) 12:54:59 ] 縦読みだろJK こはキ11こAよキ ここで、前半部分の"こはキ11こ"というのは、 個数は11個じゃないよ、というのを表している。 個は、!=11個、というわけだな。 後半部分の"Aよキ"というのは、 2個でもねーよ、というのを表している。 (2個 !=)という逆ポーランド記法を使っているようだ。 つまり、個数は11個でも2個でもないということだったんだよ!!! Ω ΩΩ<な、なんだってー!!!
519 名前:デフォルトの名無しさん [2008/03/13(木) 16:15:05 ] Perlで>>1 のようにアンカー機能をつけるためには正規表現を学べばいいと聞きました if ($FORM{'text'} =~/>>$d/) こんな感じでアンカーを抜き出すのは合ってるのでしょうか? そのあと$DATA[$d]てきなのを取り出すにはどうしたらいいのでしょうか?
520 名前:デフォルトの名無しさん mailto:sage [2008/03/13(木) 16:26:58 ] >>519 ハェ?誰に聞いたんだ?言った奴に質問してこい
521 名前:デフォルトの名無しさん mailto:sage [2008/03/13(木) 20:34:26 ] $FORM{'text'} =~ s/>>(\d{1,4})/<a href='#$1'>>>$1<\/a>/ixms 思いついたやつを貼ってみる こんなんだっけ?perlうろ覚えだわ
522 名前:デフォルトの名無しさん [2008/03/13(木) 21:25:39 ] >>521 うまくリンクされません。。 $FORM{'text'} =~ s/>>(\d{1,4})/<a href='#$1'>>>$1<\/a>/ixms ↑これは桁数が1〜4ならマッチということですよね リンクされないのはなぜでしょうか?
523 名前:デフォルトの名無しさん [2008/03/13(木) 21:30:52 ] すいません 自己解決しました $val =~ s/</</g; $val =~ s/>/>/g; これでタグを無効にしていました それで>>521 さんの通りにやるとアンカー自体はマッチします この後それを取り出すのはどのようにすればいいのでしょうか? ログからデータを取得するのはわかりますが、実際にその取り出された部分だけを抽出して表示するやり方がいまいちわかりません
524 名前:デフォルトの名無しさん mailto:sage [2008/03/13(木) 21:35:50 ] webprog池
525 名前:デフォルトの名無しさん mailto:sage [2008/03/13(木) 21:58:16 ] >>508 やったな、おい!大漁じゃねーか!
526 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 07:20:33 ] なんだい今更になって 本人乙とでも言ってほしいのか?
527 名前:デフォルトの名無しさん [2008/03/14(金) 18:46:06 ] >>523
528 名前:デフォルトの名無しさん mailto:age [2008/03/14(金) 21:06:23 ] 「楽しいかもね、そうかもね」っていう文字列で 「楽.*ね」ってやると、.*は可能な限りマッチするから 「楽しいかもね、そうかもね」まで拾っちゃうでしょ? それを「楽しいかもね」でマッチさせたい場合どうすればいいですか?
529 名前:デフォルトの名無しさん [2008/03/14(金) 21:08:42 ] *?って?をつければ非欲張り型(なるべく短くマッチ)になるかも知れない
530 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 21:08:49 ] >>528 まずは>>1 を音読したまえ
531 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 21:09:35 ] 楽.*?ね
532 名前:デフォルトの名無しさん mailto:age [2008/03/14(金) 21:12:11 ] .*? でした。
533 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 00:19:58 ] 60文字程のURLなんだけど 真ん中あたりの15文字くらいがわかんなくなりました 正規表現でなんとかなりませんか?
534 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 00:27:42 ] その15文字の前か後ろの長いほうで検索すればいいだろ…
535 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 10:57:56 ] >>528 楽[^、]*ね
536 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 11:05:59 ] >>535 それが許されるなら 楽しいね だって許されるはずだ
537 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 11:47:45 ] 楽しい、ね
538 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 11:48:14 ] 楽しいかもね楽かもね
539 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 14:28:52 ] >>535 だったら 楽[^ね]*ね でもいい様な。
540 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 18:53:11 ] ワード協会とか除外すればいいのどは
541 名前:デフォルトの名無しさん [2008/03/15(土) 22:03:46 ] 安楽死ね
542 名前:デフォルトの名無しさん mailto:age [2008/03/16(日) 00:57:08 ] 「楽しいかもね、そうかもねABC」っていう文字列で 「ね.*$」ってやると 「ね、そうかもねABC」まで拾っちゃうでしょ? それを最後の「ねABC」でマッチさせたい場合どうすればいいですか?
543 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 00:59:00 ] ね.*?$ だと何度言えば
544 名前:デフォルトの名無しさん mailto:age [2008/03/16(日) 01:02:19 ] >>543 マジで?できないけど??
545 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 01:04:58 ] [^ね]を使うとか、いろいろやりようはある
546 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 01:08:49 ] >>544 最短一致に対応してないタイプの正規表現なのかな。
547 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 01:16:55 ] >>543 ,546 その目的には、最短一致は使えないから。 照合開始位置を後ろにずらしてまで最短を見つけるわけではない。
548 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 01:21:20 ] ああ、そうなんだ。
549 名前:デフォルトの名無しさん mailto:age [2008/03/16(日) 01:34:22 ] さあ、この問題を解決できる神はいるのだろうかっ!!(ただ答えが欲しいだけ)
550 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 01:35:49 ] ね[^ね]*$ じゃないのか?
551 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 01:50:55 ] それもう545で提案されてんじゃん。
552 名前:デフォルトの名無しさん mailto:age [2008/03/16(日) 02:24:31 ] >>550 THX!ひとまずそれで省いた後 ね$をマッチさせることにするよ
553 名前:492 mailto:sage [2008/03/16(日) 03:14:37 ] やはり戻り読みが使えないと難しいですか?
554 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 03:24:12 ] 戻り読みはいらんだろ
555 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 06:10:58 ] Vimで 2008年3月16日 06:09:42 ↓ 2008-03-16 06:09:42 のように年月を-で、日を削除するように置換するにはどうしたらいですかね?
556 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 06:25:49 ] :%s/年/-/ :%s/月/-/ :%s/日// じゃあかんのんか? というか、3 を 03 に変える所までやりたいの?
557 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 06:31:06 ] >>556 説明不足ですみません、対象のテキストには日付以外にもいろいろ書かれていて、 年や月などの単語はそのままに日付部分だけ置換したいのです。 日付の正規表現が理解できていないので、こちらでお尋ねした次第です。 >というか、3 を 03 に変える所までやりたいの? 可能ならしたいです。
558 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 07:04:36 ] とりあえずこれでいけた。 :.s/\([0-9]\{1,4}\)年\([0-9]\{1,2}\)月\([0-9]\{1,2}\)日/\=system("printf '%04d-%02d-%02d' " . submatch(1) . " " . submatch(2) . " " . submatch(3))/
559 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 07:09:55 ] しまった。 テスト用に1行のみの置換にしてた。 :.s は :%s に変えてね。 まあ分かると思うけど。
560 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 07:45:51 ] >>558 さん、ありがとうございます。 やってみたのですが、うまくいかず、日付の部分が丸ごと消えてしまうようです。 'printf' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。 と出ました。こちらのVimの設定が悪いのでしょうか?もう少し試してまたレス返しにきます。
561 名前:>>555=>>557 mailto:sage [2008/03/16(日) 08:05:26 ] 何度か試したのですが、同じ結果です。 一応こちらの手順ですが、スレに貼って頂いたものをクリップボードに入れてから、 :<C-R>* で貼り付けして、先頭を :%s/ に変えてテキスト全体に適用してから、実行しました。ほぼコピペなので打ち間違いはないと思うのですが。 Vim7 を Windows 2000 sp4 で使ってます。 printf などもわからないため、もう少し調べてみます。
562 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 10:10:00 ] >>555 ViVi でだけど以下でいけた :s/(\d{4})年(\d{1,2})月(\d{1,2})日 (\d{2}):(\d{2}):(\d{2})/\1-\2-\3 \4:\5:\6 Vim でも同じように出来るんじゃないか?
563 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 11:45:32 ] >>562 さん、やってみましたが無理でした。 マッチはうまくいってるみたいですが、置換の仕方がVimとだいぶ違うようです。 ViViはいじったことないので、少し調べてみます、スペース入れる辺りがよくわかりませんので。 わざわざありがとうございました。皆さん、お手数おかけしております。
564 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 12:03:58 ] お二人のご教示をヒントにいろいろいじっていたら、以下で、 %s/\([0-9]\{1,4}\)年\([0-9]\{1,2}\)月\([0-9]\{1,2}\)日/\1-\2-\3/g 2008年3月16日 06:09:42 ↓ 2008-3-16 06:09:42 のように、桁数が1桁のままですが、それ以外は置換できました。もう少し試行錯誤してみます。
565 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 12:29:58 ] 月などを2桁にしたいのなら、ViViだと以下のようにすればいい :s/(\d{1,4})年(\d{1,2})月(\d{1,2})日 (\d{1,2}):(\d{1,2}):(\d{1,2})/format("%04d-%02d-%02d %02d:%02d:%02d", $1,$2,$3,$4,$5,$6)/e
566 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 16:54:21 ] >>560 >>558 は printf コマンドがあることを前提にしてるから Windows のコマンドプロンプトだと無理なんだろう。 Cygwin でやればいけるはず。
567 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 17:51:53 ] >>565 さん、ViViを使って、教えていただいた正規表現でできました。 いろいろVimで粘ったのですが自分のスキルでは無理だったので。 ありがとうございました。 >>566 さん、ご教示ありがとうございます。 Cygwinはよくわからないのと、>>565 さんの方法で出来たので printfコマンドはあきらめました。 >>555 の質問の件は>>565 さんので解決することができました。 皆さん、いろいろ教えていただきありがとうございました。お世話になりました。
568 名前:デフォルトの名無しさん [2008/03/16(日) 19:50:39 ] あまりの丁寧なレスに 全米が泣いた
569 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 14:41:31 ] 初心者です、それなりに調べたんですが・・ あああああああ aaaaaaaaa ?????????? 乙乙乙乙乙乙乙乙乙乙乙乙 こういうある文字の繰り返しを、一つの表現でマッチできますか?たとえば10文字以上 専ブラで弾きたいんですが、数字はのぞけると嬉しいです
570 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 14:44:54 ] [^\d]{10,}
571 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 14:45:26 ] "正規表現 後方参照"でググれ
572 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 16:39:30 ] 任意の一文字って . ドットのことでおききしたいんですけど 探したい文字の前につけるんですよね? < を探すのに .< として検索したら結果は >< として検索されます 検索結果に > を含めない方法教えて下さい
573 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 17:00:47 ] >探したい文字の前につけるんですよね? 新しい解釈だな
574 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 19:07:48 ] 久しぶりに理解不能なの読んだな 「>」でない任意の1文字 + 「<」 と一致させたいってことなら [^>]< 検索結果から>だけ取り出したいってなら.(>) 後者に何の意味があるのかは知らないけど ただ少なくとも正規表現について基礎から勉強しなおしたほうがよさそうだな
575 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 19:15:14 ] むしろ日本語について基礎から勉強しなおしたほうがよさそうだな
576 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 19:38:21 ] 最近も508が理解不能だったぞ
577 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 20:04:03 ] 読み直して 吹いた>>508
578 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 20:12:36 ] >>514 が秀逸
579 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 02:36:39 ] >>577 あれからダブルグレッペというマクロをつかわせていたらきましたよw 一応テストしてから本格的に使わせていただこうと HDDの奥深くにテスト用のテキスト置いて、 grep開始! ほへ? グアッガッガーッ!!うわぁぁああああ!!! この音は何?? なんだろか!? ハードディスクが唸りまくってるタラリーン よくわからないけどドライブごとgrepしてくれたよ 1ファイルで5000行〜1万行が40万ファイルあるのに・・・(ポカーン コントロール+オルト+デリートでストップかけたら エディター画面の後ろ側にエラー画面がいくつもでてたww 今時ブラクラ?? 驚いたというかワラタwww
580 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 15:44:41 ] 使用するソフトはProximitronです。 以下のような広告を含む<table>ブロックを丸ごと削除したいと考えています。 <table width=100% class=tbl border=1 cellpadding=5> <tr bgcolor=#EEEEEE><td height=5px></td></tr> <tr> <td align=center> <iframe id='a5c37d59' name='a5c37d59' src='ads.xxx.com/xxx/afr.php?n=a5c37d59&zoneid=2&cb=<?=41Q40eQDW2vfp6o;?> ' framespacing='0' frameborder='no' scrolling='no' width='300' height='250'> <a href='ads.xxx.com/xxxxxx/ck.php?n=adf3ef1c&cb=<?=41Q40eQDW2vfp6o;?> ' target='_blank'> <img src='ads.xxx.com/xxx/avw.php?zoneid=2&cb=<?=41Q40eQDW2vfp6o;?>&n=adf3ef1c ' border='0' alt='' /></a> </iframe> <script type='text/javascript' src='ads.xxx.com/xxx/ag.php '></script></td></tr><tr bgcolor=#EEEEEE><td height=5px></td> </tr> </table> 一部伏字にして置換してあるので100%同じ文字列ではありません。 これをマッチさせて丸ごと削除したいのです。 <table.*>.*</table> これだとページ自体が全体的に崩れてしまいます。 tableの開始と終了を合わせないといけないのですが そこがネックになっています。
581 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 16:43:48 ] >>580 正規表現スレだからこんな書き方をするとスレ違いかも知れないけど、 $NEST(<table,[^>]++class=$AV(tbl)[^>]+>*,</table>) 「*」の所を、「*消したい文字を入れる*」とか、すればいいんじゃないかな。
582 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 02:57:04 ] 拡張子のないファイルに.txt付けたいです aa1234ファイル [0-9] $[\.(txt)] だめですか?
583 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 03:02:31 ] >>582 >>1
584 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 03:12:15 ] + が使えるなら s/^\([^.]+\)$/\1.txt/ + が使えないなら s/^\([^.][^.]*\)$/\1.txt/
585 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 04:16:02 ] >>583 了解 >>584 ありがとうございます
586 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 12:58:56 ] (Perl5互換)のツールで半角括弧を削除したいんですよろしくお願いします 元の文字列 (10123)test.txt 希望する変換後の文字列 10123test.txt 使ってみたいツールはこれです ベクター Flexible Renamer ttp://hp.vector.co.jp/authors/VA014830/FlexRena/ このスレの>>1 関連サイトを廻ってみたけどよくわかりませんでした ツールの作者HPもいって見ましたがQ&Aとか掲示板はなかったです どなたか括弧の取り除き方教えて下さいお願いします
587 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 14:28:15 ] ( 削除 ) 削除
588 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 17:03:04 ] 正規表現教えて下さい <h2>タイトル</2> 「<」から「>」までお願いします(「タイトル」の文字列含む) どなたかよろしくお願いします
589 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 17:06:50 ] >>1
590 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 17:15:46 ] >>588 です 書き込んでから>>1 読みました 今のところ使うソフトは秀丸エディターを試用しようしてみよう思いますが ツールは何も揃えていない状態なので解答者サンのお勧めのソフトで始めてみます 正規表現でテキストの加工をしたいです 初心者でも挫折しないで継続して使っていけるソフトも一緒に探してます 金額にもよりますがフリー有料問いません 使うソフトはまだ明確には決めていませんので取り合えずシェアーウェアーで試してから 本格的にやってみようと思います <h2>タイトル</h2> よろしくお願いします
591 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 17:18:55 ] <h2>///ここは<strong>見出し</strong>です///</h2> こんなのは想定しなくていいのか。
592 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 17:26:26 ] >>591 サン 即レスありがとうございます そういうのもあるかもしれないです 文字列の中に <strong>見出し</strong> が入っていれば検索文字列も変わりますよねorz <h2>からエンドを</h2>にする方法教えて下さい お願いします
593 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 17:27:33 ] 途中に改行は?
594 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 17:53:20 ] >>593 サン 588です 途中に改行は想定していなかったです あるかもわからないと今気づきました お手数お掛けして恐縮ですが何卒よろしくお願い致します
595 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 23:10:25 ] おまいら、よく>>588 の文章で、その意図が判ったな。
596 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 23:37:54 ] <h2>///ここは<h2><strong>見出し</strong></h2>です///</h2> こんなのは想定しなくていいのか。
597 名前:デフォルトの名無しさん [2008/03/24(月) 23:43:26 ] 結局、正規表現は入れ子は処理できないのでは
598 名前:デフォルトの名無しさん [2008/03/24(月) 23:46:46 ] <h2> (.*) </2> \1 <h2> ([.\n]*) </2> \1 とかでいいのでは?
599 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 23:47:39 ] なるほどね 過去スレ読めばよかったorz >>33 まで読んだ
600 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 23:52:05 ] >>595 がここに張り付いてるようじゃ このスレで勉強させてもらおうって人も尻込みするね >>595 の意図はそれなんだろうけど・・・
601 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 23:54:45 ] ライオンはなんとかって話なわけで 潰しにかかれるうちに潰しちゃう やな奴だ氏ねばいいよ 9図
602 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 23:58:48 ] - - - こ こ へ 何 か 聞 き に 来 た 人 へ - - - ま ず 過 去 ス レ 読 ん だ ほ う が い い 変 な 潰 し 屋 が い て る よ う な の で ご 注 意 下 さ い
603 名前:デフォルトの名無しさん [2008/03/25(火) 00:18:28 ] 質問です。 正規表現だと、〜〜を含む行を探すってのは簡単にできるんだけど 〜〜を含まない行を探すのはどうするのが一般的なのでしょうか? エディタならば、「abcde」を含む行を ^((.*)abcde(.*))\r\n で探して、削除することで処理できるのですが、 これはあくまで含む行を探してるのであって、 含まない行を探すというのとは違うような気がして釈然としません。 別に今困ってるわけじゃなくて、知っておきたいだけなのですけど・・・。 よろしくお願いします。
604 名前:デフォルトの名無しさん [2008/03/25(火) 00:24:37 ] うあ、>>473 ですでにあった。
605 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 00:25:12 ] >>603 言語理論での定義では、正規表現は「ある文字列を含まない文字列」はあらわせない。 しかしそれでは不便なので、パターンマッチ用に拡張された言語では否定を表現する方法を持っている場合はある。
606 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 02:48:25 ] sage を含まない文字列 ^(?!sage)(.(?!sage))*$
607 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 03:06:14 ] >>603 ^([^a]|a([^b]|b([^c]|c([^d]|d([^e]|$)|$)|$)|$)|$)*
608 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 08:13:09 ] >>603 vi, vim, ViVi なら :v/regexp/d で正規表現に一致しない行を削除できる
609 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 12:28:43 ] <h2 title="></h2>">みだし</h2> こんな記述も可能ではある。 結論: HTMLのパースに正規表現は向かない
610 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 13:40:43 ] java1.4ですが、 1234567890 を 1234______ にリプレイスしたいのですが、 どうすればできるでしょうか?
611 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 13:44:44 ] "1234567890".replaceAll("[567890]", "_")
612 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 13:45:35 ] "1234567890".replaceAll("[5-90]", "_")
613 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 13:55:11 ] 「違うんです。 987654 なら 9876__ 314159265358979 なら 3141____________ にしたいんです」 かな。
614 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 14:02:37 ] >>610 自己レスですが、いろんなサイトを見よう見まねで + 気合で何とかできました。 "1234567890".replaceAll( "(^....|).+?(?=.+|$)" , "$1_")
615 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 20:25:13 ] 「任意の一文字」の.や「前にある文字の1回以上」の+は、bashだとそれぞれ?と*ですが、 正規表現は規格で決まってるものではないんでしょうか? 言語ごとに違いってあるんでしょうか?(bashは言語じゃないってのもありますが・・・)
616 名前:615 mailto:sage [2008/03/25(火) 20:27:21 ] 「前にある文字の1回以上」の+ ↑は違いましたね・・・失礼しました。
617 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 20:28:54 ] >bashだとそれぞれ?と* それ性器表現じゃないし
618 名前:615 mailto:sage [2008/03/25(火) 20:49:04 ] >>617 bashのは正規表現とは言わないんですか、失礼しました。そう呼んでるサイトも見かけますが・・・ bashの*に対応するのは.*ですね。 bashスクリプトとperlスクリプトが混ざってると、ちょっと紛らわしいですね
619 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 22:05:10 ] bash のは言うならワイルドカードだな。
620 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 01:49:44 ] grepとglobの違い。
621 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 03:33:07 ] えっ?どう違うの?
622 名前:デフォルトの名無しさん [2008/03/27(木) 13:47:15 ] えっと・・・ VBS (WSH Windows Scripting Host) のRegExp では マルチラインの指定はできんですか? ググって必死こいて探してるけど見つけられないんで。
623 名前:デフォルトの名無しさん mailto:sage [2008/03/27(木) 14:56:06 ] かなり前のバージョンでサポートされた Set ObjRegExp = New RegExp ObjRegExp.Multiline = True
624 名前:デフォルトの名無しさん [2008/03/27(木) 22:10:38 ] >>623 できました。アリガトです。
625 名前:デフォルトの名無しさん [2008/03/29(土) 17:03:54 ] 「ます」「ただいま」 という二つの単語がある場合で 上記2つにはマッチするが たとえば「まる」という言葉にはマッチしないようにする 正規表現ってどうやればいいですか? 今は「ます」と「ただいま」の2語をマッチするようにしているのですが、 やり方が悪いのか「まる」という言葉でもマッチしてしまいます。
626 名前:デフォルトの名無しさん mailto:sage [2008/03/29(土) 17:12:13 ] >今は「ます」と「ただいま」の2語をマッチするようにしている 具体的にはどうしているの?
627 名前:デフォルトの名無しさん mailto:sage [2008/03/29(土) 17:15:05 ] (ます)|(ただいま) どう間違えると「まる」にマッチするのか知りたい。
628 名前:625 [2008/03/29(土) 18:03:22 ] ()なんてあったのか! 解決しました!ありがとうございます。
629 名前:デフォルトの名無しさん mailto:sage [2008/03/29(土) 18:12:12 ] どうやっていて (ます|ただいま) にマッチさせたいのに まる に マッチしてたのかという謎を解決して欲しいです。
630 名前:デフォルトの名無しさん mailto:sage [2008/03/29(土) 18:43:26 ] >>627 そんな書き方があるとは知らなかった どの正規表現実装か教えてくれ
631 名前:デフォルトの名無しさん mailto:sage [2008/03/29(土) 21:09:51 ] Firefox2.0.0.13の拡張機能Adblock Plus 0.7.5.3でフィルタを登録しています。 /[\W_]ad(?!=&)(banner|click|conmatch|eeper|flow|frame|ima?ge?|log|serv(er|e)?|stream|type|view|vert(ising|isement)?|trix|xchange|wrapper)?s?[\W\d_]/ これが↓にもヒットしてしまい表示されなくて困ってます。 ttp://navi.ekitan.com/ppnavi/Dr?PC=&uid=&dir=22&path=2008032920482250400&flati=12485742&flong=48790567&fland=%E5%A4%A7%E9%98%AA%E5%BA%9C%E5%A4%A7%E9%98%AA%E5%B8%82%E4%B8%AD%E5%A4%AE%E5%8C%BA%E5%A4%A7%E9%98%AA%E5%9F%8E1-1&ftell=&sf=10900 デコードすると、 ttp://navi.ekitan.com/ppnavi/Dr?PC=&uid=&dir=22&path=2008032920482250400&flati=12485742&flong=48790567&fland=大阪府大阪市中央区大阪城1-1&ftell=&sf=10900 よく分らないのですが、"中"の%E4%B8%ADに当たってるようです。 一番よく使ってるフィルタなので消したくないです。 このフィルタで"中"にはヒットしないような正規表現は可能ですか?
632 名前:デフォルトの名無しさん mailto:sage [2008/03/29(土) 21:55:14 ] /[^%A-Za-z0-9]
633 名前:デフォルトの名無しさん mailto:sage [2008/03/30(日) 07:49:32 ] 一番外側の開始文字〜終了文字までを マッチさせるようなのは正規表現でいけません? 開始終了を括弧としたら "(((1 + 2) * 3) - 4) / 5" の時 "(((1 + 2) * 3) - 4)" ここまで取れない? 括弧見づらいからブレイスにするけど /{([^{}]*|{[^{}]*})*}/ だと2段までしかとれないのは何故?
634 名前:デフォルトの名無しさん mailto:sage [2008/03/30(日) 08:00:38 ] /{([^{}]*|{([^{}]*|{[^{}]*})})*}/ こうすれば3段までマッチさせられるよ。
635 名前:デフォルトの名無しさん mailto:sage [2008/03/30(日) 09:04:26 ] 普通に最長一致させてやりゃいいんでないの? (1+2)*3)-4 みたいな構文が来たら困るけど
636 名前:デフォルトの名無しさん mailto:sage [2008/04/03(木) 12:27:53 ] 質問ですperl5.8です <aaa bbb ccc> ddddddddddddd<aaa> 検索:<aaa.*?>(.+?)<aaa> で検索したけどマッチしません。どなたかよろしくお願いします
637 名前:デフォルトの名無しさん mailto:sage [2008/04/03(木) 13:22:02 ] >>636 .*? の部分かな。 <aaa[^>]*> でどうだろう。
638 名前:デフォルトの名無しさん mailto:sage [2008/04/03(木) 14:20:12 ] >>636 対象が複数行なんだよね? $str = "<aaa bbb ccc>\nddddddddddddd<aaa>"; $str =~ s/<aaa.*?>(.+?)<aaa>/$1/s; # 後ろに s つける print $str;
639 名前:デフォルトの名無しさん mailto:sage [2008/04/03(木) 14:22:45 ] 改行のせいだろJK (?s-:<aaa.*?>(.+?)<aaa>)
640 名前:デフォルトの名無しさん mailto:sage [2008/04/03(木) 14:23:10 ] うわぁ、更新してなかったorz
641 名前:デフォルトの名無しさん mailto:sage [2008/04/03(木) 22:23:59 ] みなさんレスありがとう>>636 です 上手くいかないです^^; もうちょっとガムバッテみます 複数行になると難しいですね 続いた行はできそうな気がするんだけどできないorz
642 名前:デフォルトの名無しさん mailto:sage [2008/04/03(木) 22:43:52 ] while (<FH>) { /pattern/s; # 先生、何もマッチしません } if (@lines =~ /pattern/s) { # 先生、ここ通りません } どっちか知らないけど。
643 名前:デフォルトの名無しさん [2008/04/04(金) 20:06:53 ] " 11 11 " これにマッチあせて"11 11"を取得することはできますか? 「 *([^ ]*[.]*[^ ]*) *」 でやってみたのですがうまく取得できなくて・・・ スペースは全て全角です お願いします
644 名前:デフォルトの名無しさん mailto:sage [2008/04/04(金) 21:22:00 ] >>643 途中の[.]*でぶっ飛んでる。つーか、. に [ ] つける意味がないよね。
645 名前:デフォルトの名無しさん mailto:sage [2008/04/04(金) 21:30:34 ] >>644 じゃあ教えてあげればいいのに文句書くだけなら解答者じゃない荒らしだ どっか池 こんな感じか違うかw ".1+.*?"
646 名前:デフォルトの名無しさん mailto:sage [2008/04/04(金) 21:35:40 ] スペースが全角って、もとの文字列がってこと? あと 11 と 11 は同じ文字? それなら +(([^ ]*) +\1) + かな。全角を認識させたいなら・・・環境によるなぁ。
647 名前:デフォルトの名無しさん mailto:sage [2008/04/04(金) 22:01:59 ] perl5.8です 文字列を3行続けて取得したいのですが教えて下さい 【郵便】100-0001 【住所】東京都○○区○○町1-2-3 もしくは 神奈川県○○市○○町1-2-3○○○○○○○○マンション3階303号室 【電話】03-3000-XXXX 1行目、3行目は行頭にそれぞれ【郵便】【電話】がありますが 2行目の住所部分はマンション名が長かったりすると【住所】はなくて行頭が東京都や神奈川県から始まる行もあります 3行連続で取得する方法教えて下さい
648 名前:デフォルトの名無しさん mailto:sage [2008/04/04(金) 22:18:25 ] 【郵便】[.\n]*?【電話】.*
649 名前:デフォルトの名無しさん mailto:sage [2008/04/04(金) 22:26:17 ] >>647 pc11.2ch.net/test/read.cgi/php/1203935151/280 とか pc11.2ch.net/test/read.cgi/php/1204488452/42 とか >>636 辺りに心当たりはないか。
650 名前:デフォルトの名無しさん [2008/04/05(土) 00:02:46 ] >>646 「○11○5656○」 ○は全角スペースです 全角スペースに囲まれた文字列を取得したくて・・・ 11とか5656は任意の文字で 間に全角スペースが入っているかもしれないんです 上の文字列だったら「11○5656」 って感じで わかり難い書き方して申し訳ないです
651 名前:デフォルトの名無しさん mailto:sage [2008/04/05(土) 00:10:43 ] >>650 言語は?
652 名前:デフォルトの名無しさん mailto:sage [2008/04/05(土) 00:19:51 ] ○(.*)○ これで抽出できないかな?正規表現始めたばっかでよくわからないけど
653 名前:デフォルトの名無しさん mailto:sage [2008/04/05(土) 00:20:47 ] ○*(.*)○* こうか、すまん
654 名前:デフォルトの名無しさん mailto:sage [2008/04/05(土) 00:21:36 ] 基本的に正規表現は最長一致するから >>652 で問題ないんじゃない?
655 名前:デフォルトの名無しさん [2008/04/05(土) 00:27:45 ] test
656 名前:デフォルトの名無しさん mailto:sage [2008/04/05(土) 01:28:02 ] >>650 言語と文字コードがないとあきまへんが、なんとかせーっちゅーなら、 (\xe3\x80\x80|\xa1\xa1|\x81@)(.*)(\xe3\x80\x80|\xa1\xa1|\x81@) これでいけますわ。utf-8,shift_jis,euc-jpなんでもこいのすぐれものや。
657 名前:デフォルトの名無しさん mailto:sage [2008/04/05(土) 01:59:54 ] どうして正規表現はいつもいつも顔文字に見えてしまうんですか?
658 名前:デフォルトの名無しさん mailto:sage [2008/04/05(土) 02:59:24 ] >>650 「○11○5656○」 これの1個目3個目の空白はマッチさせないんだよね 2個目の空白は実際にはあるかないかわからない 両隣は任意の文字 ん〜これピッタシあわせるのは今の情報だけでは難しいというより不可能じゃないでしょうか 任意の文字が半角だけの構成なら[0-9][a-z]簡単なんだけどなー 何か他にkeyに出来そうなのないですか? それとここで解答者が自分の環境でよい結果が出てもあなたの環境ではマッチしないかもしれない 環境に合った正規表現の使い方をしないとマッチさせれない場合がありますよ 質問者も解答者も徒労に終わるので あなたが正規表現をどのように使うのか記載したほうがいいよ 正規表現を扱おうとする言語もしくは正規表現を扱えるエディターで検索しようとしているのか あなたを攻めてるわけではないので誤解しないようにね
659 名前:デフォルトの名無しさん mailto:sage [2008/04/05(土) 03:16:49 ] >>650 [^\x81@].*[^\x81@]
660 名前:デフォルトの名無しさん mailto:sage [2008/04/05(土) 08:53:44 ] >>653 ああ、そうか。そうだな。
661 名前:650 [2008/04/05(土) 12:28:26 ] すみません戻りました 皆様レスありがとうございます 「○11○5656○」 ○は全角スペース、何個あるかわからないし、ないかもしれません 「一三○四○○○」だったら「一三○四」 「○○○○八九4○○た」だったら「八九4○○た」 こんな感じで取得したいです 他の文字は任意です。全角の場合が多いですが 言語はJava、コードはUnicodeかな? 簡単に言うと両端の全角スペースをトリムしたいだけなのですが・・・ わかり難い表現ですみません
662 名前:デフォルトの名無しさん mailto:sage [2008/04/05(土) 12:35:01 ] 先頭の全角スペースを除去、末尾の全角スペースを除去 という処理にしたほうが簡単だよ 非欲張りなのが使えればこうかな / *(.*?) *$/
663 名前:デフォルトの名無しさん mailto:sage [2008/04/05(土) 12:50:55 ] /^□*([^□]+(□+[^□]+)*)□*$/
664 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 03:05:23 ] gawk3.16です 2行に渡る文字列を検索でマッチさせたいです <title(.+?)\n.*title> 秀丸(正規表現ON)ではマッチしていたのですがgawkではマッチしません アドバイス頂けましたら幸いです どうぞよろしくお願い致します
665 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 03:14:35 ] mオプション可能な処理系を使うか、事前に加工しとくか。
666 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 04:08:57 ] >>665 さん mオプション マルチラインですね 実はgawkのスクリピトを教えていただいたのです とても気に入り今後末永く使わせていただこうと思うのですが 複数行の検索が秀丸と違うようなので戸惑っています 他にgawkのアドバイスありましたらよろしくお願いします
667 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 06:08:38 ] >666 相変わらず具体的じゃないのね。 665をやったがこういう風にうまくいかなかったとか こうしたけどダメだったとかあれば、アドバイスのしようもありますが、 他にアドバイスと言われてもなかなか。
668 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 08:58:29 ] >>666 ない物は仕方ない。 mオプションの正規表現を組み込んだawkを自前で作る? perlとか、正規表現が拡張されてる処理系に移った方が、後々幸せ。
669 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 13:26:21 ] gawk3.16で複数行にまたがる文字列をマッチさせたいです エイチティティピー://www.kt.rim.or.jp/~kbk/gawk/gawk_5.html#SEC28 上記アドレスのページに「複数行レコード」と記述がありました >変数FS に "\n"という文字列をセットすれば良い。 > (これは、改行にマッチする単純な正規表現である) わかる方おられましたら教えて下さい やってみたこと gawk.exe "FS = \n 検索文字列 プリントアウト"入力ファイル>出力ファイル エラー:^バックスラッシュが行最後の文字になっていません gawk.exe "FS = \n 検索プリントアウト"入力ファイル>出力ファイル^ エラー:More? gawk.exe "FS = \n 検索プリントアウト"入力ファイル>出力ファイル/ ファイル名、ディレクトリ名 またはボリュームラベルの構文が間違っています PS: 666です >>667 さん >>668 さん レスありがとうです
670 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 13:57:34 ] >>669 気付け。gawkじゃ無理。 FSはフィールドセパレータ。用途が全然違う。
671 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 14:00:36 ] そういうのはどうしてもawkでやりたければtrで改行文字を置換してからawkで処理して戻すとかやるからなぁ。 awkだけじゃなくて、基本的な知識が足りなすぎるよ。
672 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 14:04:12 ] >>669 です >>670 さん >>671 さん gawkは諦めた方がよいかもしれないですね 私じゃ無理だということはわかりました アドバイスありがとうございました^^;
673 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 16:01:44 ] <element attribute>マルチラインを キャプチャしたいんです</element> このお題はまだ続くのかな。 > perl5.8です > gawk3.16です 次は何だろ。
674 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 00:07:32 ] >>673 残念でした 秀丸 perl gawk ですよw 秀丸でもう少しのところまでいけたんだけど データが長すぎて最後のソートが出来なかったんだ それでエクセルとかでやろうとしたんだけど 文字化けで遠回りした 正規表現扱えないんだってわかるのに1週間かかったw んで改めてやってるんよ データ形式をちょっと変えて保存するだけなんだけど こんなに難しいとは思わなかった 秀丸スレの人たちとUWSCスレの人たちのお陰で ここまでなんとか前進できた いつも「もう少しだっ」って思っていたところへたどり着くまでに 思いもよらぬ壁が現れるんだ この正規表現もそうだね 私は正規表現って生まれて始めて知ったんだ またお願いしますね オヤシミ^^
675 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 03:18:20 ] >>674 Excelでも正規表現使えるよ。 CreateObject で正規表現オブジェクトを使えるようにすればね。 つか、Perlでできなかったてーのはなんでだ?
676 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 03:25:58 ] >>675 perlで出来そうなんだけど私が作れないだけ^^; オヤシミノシ
677 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 05:15:30 ] >>676 正規表現使うならperlじゃなくてもいいが何かプログラミング言語もやっといたほうが自由度はあがると思うけどな。 perlは何するにしても過去の遺産のおかげで楽ができるから趣味でやる分にはお勧め。
678 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 14:44:33 ] いくつかのスレで見かけたけど、大本のやりたいことは何なの? ウェブページをテキストで取り込んでデータベース可? なんだかやりたいことの過程で部分部分でこのソフトでこうするのはどうしたらいいか とういう質問でよく分からない。 で 紙copi/紙copi lite/Kamicopi/ネタの種 12 pc11.2ch.net/test/read.cgi/software/1201627570/ あたりのソフトを使えば良いんじゃないか?とか思っちゃうんですが、見当違いだったらごめんね。
679 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 18:46:44 ] >>678 紙コピ持ってるよ 最初はスゲーとか思ってシェア払って正規ユーザーなったけど 加工で正規表現検索できないので役に立たない ビジネスバージョンも抽選で当たったけど もう使ってないよ やりたいことは何十回も書いてるよ ここで書くのもなんなんだけど 既存のファイルからタイトルとデータ1箇所を抽出して一覧表作りたいだけ <ol> <li><a href="ファイル名">タイトル</a></li> <li>データ</li> </li>予備項目(空欄)</li> </ol> この前ファイル名とタイトルの部分を作ってくれた方が居たんだけど その下にデータ項目と予備項目を作らなければいけないことがわかって もっかい頼んだら後でコロコロ変わるってことで断られた それで自分でやってるわけ^^;
680 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 22:33:34 ] 素朴な疑問だが、「シェア払って」ってなに?
681 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 23:15:19 ] 「シェア払って」ですか 「お金払って」ですね
682 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 11:27:48 ] シェアウェアにシェアフィーをシェア、って早口言葉みたいだ。
683 名前:デフォルトの名無しさん mailto:sage [2008/04/11(金) 01:20:21 ] Wiki(pedia)って感じだな。
684 名前:デフォルトの名無しさん mailto:sage [2008/04/11(金) 10:39:52 ] 詳説 正規表現 第3版の訳本がやっと出るっぽいな 原書あるから要らんけど…
685 名前:デフォルトの名無しさん mailto:sage [2008/04/11(金) 18:59:29 ] Perl5.8.2です。 「あかスまのた゚」「゙ナをフaき」のように、 規則性のない全角かな・カナ、半角かな・カナ(濁点半濁点含む)をマッチさせたいのですが 例えば上の例ですとどのようなパターンで記述すればいいでしょうか? 文字コードは何でも構いませんが、可能ならeuc-jpが良いです。 よろしくお願いします。
686 名前:デフォルトの名無しさん mailto:sage [2008/04/11(金) 19:16:59 ] 半角英字が混じってるように見えるが、 それは排除しなくていいのか? Ruby なら EUC にして 0x00 〜 0x7F を排除すればいいだけだと思うが、 規則性の有無のチェックが必要とかなると正規表現では難しいかと。
687 名前:デフォルトの名無しさん mailto:sage [2008/04/11(金) 19:20:26 ] あ、全角英字や漢字も除くというか、 本当に仮名のみにするのか。 仮名の範囲の端同士で [ヲ-゚ぁ-んァ-ミム-ヶ] みたいにすればいいと思うよ。 Ruby なら文字コード指定できるから、EUC でそうやればいい。
688 名前:デフォルトの名無しさん mailto:sage [2008/04/11(金) 20:59:19 ] どうだい本当にそういうことか? 文字化けしてる領域をまるっと抽出したいってことだと思うんだが もしそうなら>>306 みたいに先読み使えばどうにかなると思う
689 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 00:19:19 ] ttp://www.oreilly.co.jp/books/9784873113593/ 第3版が出るようだけど,PHPイラネなら買うほどでもないのかな
690 名前:デフォルトの名無しさん [2008/04/12(土) 01:42:47 ] 性器にperlを埋め込みたいんですが、腕のいいクリニックをご存知ありませんか?
691 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 02:36:34 ] 埋め込むなら、perlではなくpearlをどうぞ。
692 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 05:25:33 ] さすがにRuby埋め込んでくれるところはないんでしょうか?
693 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 08:45:46 ] ないね Pythonなら最初から生えてるのにね
694 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 10:20:33 ] 朝になるとEiffelです。
695 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 19:18:06 ] 35の春。はじめての C 。
696 名前:デフォルトの名無しさん [2008/04/12(土) 22:01:15 ] haskell! haskell!
697 名前:デフォルトの名無しさん [2008/04/13(日) 14:15:30 ] 正規表現でパスワードのような文字列にマッチさせることは可能でしょうか? 条件 ・英字(大文字か小文字)と数字を必ず含む ・英字のみはマッチしない ・数字のみもマッチしない ^\w+$ はもちろん駄目で ^[a-zA-Z\d]+$ ももちろん駄目でした・・・
698 名前:デフォルトの名無しさん [2008/04/13(日) 15:36:33 ] これでどうですか? (\w+(\d*\w*)*|\d+(\w*\d*)*) _と-の扱いは?
699 名前:デフォルトの名無しさん [2008/04/13(日) 17:01:14 ] > _と-の扱いは? ああ、それもいるのか・・
700 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 17:07:31 ] 先読み使える言語なら、それで一発では?
701 名前:デフォルトの名無しさん [2008/04/13(日) 17:26:35 ] \d+(\d|\w|[-_])*\w+(\d|\w|[-_])*|\w+(\w|\d|[-_])*\d+(\d|\w|[-_])*|[-_](\d|\w|[-_])*\w+(\d|\w|[-_])*
702 名前:デフォルトの名無しさん [2008/04/13(日) 21:26:46 ] 教えて欲しいのですが、この /(?<=\{\s*)/ が perl に怒られるのはなぜでしょうか * をはずすと特に問題は無いのですが
703 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 21:33:31 ] >>702 エラーメッセージでてるだろ。 そこに理由が書いてあるから読めよ。
704 名前:デフォルトの名無しさん mailto:sage [2008/04/14(月) 07:33:27 ] >>701 サンクス試してみる。
705 名前:デフォルトの名無しさん mailto:sage [2008/04/14(月) 08:25:50 ] 別々にマッチした方が良くね?
706 名前:デフォルトの名無しさん [2008/04/14(月) 22:46:37 ] だな。おれもそうする。 どんなプログミング言語で書いてるのかわからんけど if ($password =~ m/^[A-Za-z0-9_\-]+$/ && $password =~ m/[0-9]/ && $password =~ m/[A-Za-z]/) { ほげほげ・・・ } みたい書いたほうが、どんな言語にも応用がきくし あとのメンテナンスも楽だしな。 どうしても無理やり1つにまとめなきゃいかん事情があるんなら別だが。
707 名前:デフォルトの名無しさん mailto:sage [2008/04/16(水) 01:54:40 ] VC++ 2005、WinXPで開発をしています。 正規表現を扱えるライブラリを探しています。 出来れば、charとwchar_tの両方に対応しているものが欲しいと思っています。 片方なら、boostでいいと思うのですが…… どなたか、ご存知の方教えてください。
708 名前:デフォルトの名無しさん mailto:sage [2008/04/16(水) 07:19:25 ] "abc__def__ghi__jkm"という文字列があるとして、 この文字列中の「__」を任意の数だけ半角スペースに置換するという場合 (1が指定されたなら1つ、2が指定されたなら2つというように)、どのような記述になるのでしょうか。 使用言語はPerlです。 oオプションを指定して評価を1度だけにし、ループで回す、という方法は考えたのですが、 可能なら正規表現のみで完結させたいです。 どなたかご存知でしたら教えていただけないでしょうか。 よろしくお願いします。
709 名前:デフォルトの名無しさん mailto:sage [2008/04/16(水) 07:48:59 ] perlなら_でsplitしてjoinしたほうが速いような。
710 名前:デフォルトの名無しさん mailto:sage [2008/04/16(水) 10:45:45 ] 正規表現でバッチ処理的な事したとき最速なのってやっぱperlか?
711 名前:デフォルトの名無しさん [2008/04/16(水) 13:58:17 ] ruby
712 名前:デフォルトの名無しさん mailto:sage [2008/04/16(水) 14:20:48 ] まじか。ruby早いのか
713 名前:デフォルトの名無しさん mailto:sage [2008/04/16(水) 14:24:48 ] perlの方が糞速いよ
714 名前:デフォルトの名無しさん [2008/04/17(木) 04:26:31 ] 2ちゃんではurlを書き込むと自動的にリンクが貼られますが、 2ちゃん外のurlだとhttp://がime.nu/ に置換されます urlが2ちゃん内か外かを判断するにはどうやっているのでしょうか。 urlかどうかを判断し、リンクを貼るところまではネットで調べて↓のようにできたのですが、続きがわかりません。 ereg_replace("(http)(://[[:alnum:]\S\$\+\?\.-=_%,:@!#~*/&]+)","<a href=\"\\1\\2\">\\1\\2</a>",$str); どうかよろしくお願いします。 言語はPHPです。
715 名前:デフォルトの名無しさん mailto:sage [2008/04/17(木) 07:00:53 ] 2chの中だったら 2ch.netというURLが必ず入るわけだから、 それが含まれている文字列にマッチするかしないかを確認すればいだけじゃないの
716 名前:デフォルトの名無しさん mailto:sage [2008/04/17(木) 07:37:42 ] 2ch.netだけだと、 www.example.com/2ch.net/ がマッチしちゃうよ
717 名前:デフォルトの名無しさん mailto:sage [2008/04/17(木) 07:41:25 ] じゃぁ //[^/].*2ch.net/
718 名前:デフォルトの名無しさん mailto:sage [2008/04/17(木) 16:16:02 ] itemが必ず入ってい<mark>〜</mark>を検索する方法はありましか? その場合itemがない<mark>〜</mark>があり、これはヒットさせたくありません。 javaです。 正規表現は:<mark>.*?</mark>(?<!item.*?) <mark> item </mark> → うまくいく <mark> item </mark> <mark> </mark> <mark> item </mark> → うまくいかない ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑_↑↑↑↑↑↑↑↑↑ 1個目のヒット_____________2個目のヒット
719 名前:デフォルトの名無しさん mailto:sage [2008/04/17(木) 18:03:59 ] それがXMLデータなら明らかにミスアプローチだと思う。
720 名前:デフォルトの名無しさん mailto:sage [2008/04/17(木) 19:42:27 ] >>718 そこに書かれている条件だけなら、 <mark>[^<]*item[^<]*</mark> で上手くいくかもしれない。 <marK>とかのタグが入れ子するかもー、ということなら正規表現じゃムリ。
721 名前:デフォルトの名無しさん mailto:sage [2008/04/17(木) 19:57:24 ] 正規表現でファイルに文字が存在するかチェックしています。 存在していたら中の文字を返す仕様です。 /(<grep\s*([^\s]+)\s*-\s*([^\s]+)\s*>.+<\/grep>/ <grep foo-../hoge/google.txt>マッチします。</grep> この場合、../hoge/google.txt内fooという文字があったらに「マッチします。」を返します。 この応用で質問なのですが、 <grep foo-../hoge/>aaa<grep foo-./foo/>aaaaa</grep>aa</grep> という文のように入れ子の場合、 <grep foo-../hoge/>〜</grep>と <grep foo-./foo/>〜</grep>で 2回チェックしたいのです。 この場合、最長マッチでできるのですが以下のような場合も考えられるのでどうすればいいか困っております。 <grep foo-../hoge/>aaaaa</grep> <grep foo-./foo/>aaaaa</grep> どんな書き方がいいでしょうか? ご鞭撻のほどよろしくお願いします。
722 名前:デフォルトの名無しさん mailto:sage [2008/04/17(木) 20:00:02 ] </grep>がどっちの</grep>を指してるのかわかりづらい あとそういう入れ子構造は正規表現の苦手な分野だから、ほかの手が使えるならそっちのがいい
723 名前:デフォルトの名無しさん mailto:sage [2008/04/17(木) 20:21:25 ] 教えてください。 正規表現じゃないアスタリスクってなんていうんですか? たとえばsyslog.logから始まるファイルを表示するとき $ ls syslog.log* こんな感じで見てるんだけど、このときの*はメタキャラクタ? また、こういうときに正規表現を使ってみたい場合はどうすればいいですか?
724 名前:デフォルトの名無しさん mailto:sage [2008/04/17(木) 20:42:30 ] わいるどかーど
725 名前:デフォルトの名無しさん mailto:sage [2008/04/17(木) 21:04:26 ] ls | grep 正規表現
726 名前:デフォルトの名無しさん mailto:sage [2008/04/17(木) 21:16:35 ] ありがとうございます。 なるほど、確かにシェルのワイルドカードですね。 納得しました。
727 名前:721 mailto:sage [2008/04/17(木) 22:14:46 ] >>722 ありがとうございます。 C言語やJAVAなんかの入れ子のifのような感じといえばわかりやすいかもしれません。 こういう処理はどうやればいいのでしょうか? 正規表現とは関係ないですがよろしくお願いします。
728 名前:デフォルトの名無しさん mailto:sage [2008/04/18(金) 00:05:52 ] >>727 パーズして構文木を作って、構文木に対していろいろ処理をするのがふ つう。 楽をしたいなら、その変な文法をやめてXMLにしてしまえ。DOMにしてか らイロイロすればいい。
729 名前:デフォルトの名無しさん mailto:sage [2008/04/18(金) 18:40:10 ] >>728 ありがとうございます。 正規表現でやりたいです。 テーブルタグの入れ子処理みたいなものは正規表現では難しいのですね。。。 <table> <tr> <td> <table> <tr> <td></td> </tr> </table> </td> </tr> </table>
730 名前:デフォルトの名無しさん mailto:sage [2008/04/18(金) 21:07:38 ] 普通の正規表現では不特定回数の入れ子を扱えません。
731 名前:デフォルトの名無しさん mailto:sage [2008/04/19(土) 11:38:21 ] 正規表現を基礎から学習したいのですが、チュートリアル・サイドで 人妻がどうのとか、女子高生がどうしたとかが概説に載っていて嫌な気分になりました。 そこできちんとした書籍を購入しようと思いますがオススメはありますでしょうか? ポケット・リファレンスあたりかな?
732 名前:デフォルトの名無しさん mailto:sage [2008/04/19(土) 11:48:12 ] 正規表現って学習するようなものか? たしかに、正規表現を何か難しいもののように扱って、 「正規表現が分かる!」とか謳ってる本は巷に溢れてるけど、 役に立つと思ったのは一冊もないね。 処理系のリファレンスでも読んで試行錯誤するのが一番いいと思う。
733 名前:デフォルトの名無しさん mailto:sage [2008/04/19(土) 11:59:21 ] さっそくご回答いただきありがとうございます。 なるほど、モヤモヤがすっきりしました。 とりあえずエディタのヘルプで生きていきます。
734 名前:デフォルトの名無しさん mailto:sage [2008/04/20(日) 00:56:54 ] 普段使いする1冊。 www.amazon.co.jp/dp/4798109126/ 一応理論的な説明もなくはないけどメインはリファレンス。 簡単な例(任意の1文字にマッチさせるとか)から 進んだ内容(先読みとか)まで幅広くてグッド。
735 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 09:23:34 ] 詳説正規表現第2版の何が不満なのか
736 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 09:30:00 ] もうすぐ3版が出るところだろ
737 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 16:29:32 ] 今週
738 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 23:25:14 ] 公式で買ったらもう届いたw
739 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 04:50:49 ] 2版だってまだ読み終わってないよorz
740 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 08:33:46 ] >>738 マジかよwいいなー
741 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 23:54:46 ] >>738 書評頼むよ 2版からどう変わってた?
742 名前:デフォルトの名無しさん [2008/04/24(木) 22:03:25 ] 教えてください 地図のアドレスなのですが abc.com/map.php?x=123.4567890&y=34.56789012&z=1 これを下のように置換したいのですがどうやればよいのでしょうか? x=とy=の値を取り出して def.com/map.html?x=123.4567890&y=34.56789012&z=19 のようにしたいのですがよろしくお願いします。 rubyを勉強中です。
743 名前:デフォルトの名無しさん mailto:sage [2008/04/25(金) 07:01:17 ] URIはパーサ使えばいいやん
744 名前:デフォルトの名無しさん mailto:sage [2008/04/25(金) 09:13:28 ] >>742 '&'(と'?')でsplit()してからの方が楽だったりするかな。