正規表現 part4
レス数が950を超えています。1000を超えると書き込みができなくなります。
0001デフォルトの名無しさん
2007/08/02(木) 13:53:20質問する場合は実装言語や処理系ソフトウェア名を示しておくと話が早いです。
0002デフォルトの名無しさん
2007/08/02(木) 13:53:48正規表現メモ
http://www.kt.rim.or.jp/~kbk/regex/regex.html
Perl正規表現雑技
http://www.din.or.jp/~ohzaki/regex.htm
Regular Expression(Riue ちゃんの正規表現講座)
http://www.sixnine.net/regexp/
正規表現パズル
http://oraclesqlpuzzle.hp.infoseek.co.jp/regex/
詳説 正規表現
http://www.oreilly.co.jp/books/4873111307/
正規表現プログラミングFAQ
http://capslockabcjp.kitunebi.com/faq.html
JScript 正規表現の概説
http://msdn.microsoft.com/library/ja/script56/html/js56reconIntroductionToRegularExpressions.asp
.NET Framework 正規表現言語要素
http://msdn.microsoft.com/library/ja/cpgenref/html/cpconregularexpressionslanguageelements.asp
◆関連スレ
[UNIX板] 正規表現
http://pc8.2ch.net/test/read.cgi/unix/1039165754/
[WebProg] 正規表現道場
http://pc11.2ch.net/test/read.cgi/php/1168450843/
◆前スレ
[1] http://pc8.2ch.net/test/read.cgi/tech/1062152374/
[2] http://pc8.2ch.net/test/read.cgi/tech/1131028296/
[3] http://pc11.2ch.net/test/read.cgi/tech/1156413899/
0003デフォルトの名無しさん
2007/08/04(土) 07:00:210004デフォルトの名無しさん
2007/08/06(月) 12:01:260005デフォルトの名無しさん
2007/08/06(月) 18:53:14正規表現で()の中の文字列と()を消したいのですが
全く知識がないので分かりません。
プリセットの(.*)\(\d+\)(.*)で数字は消せるようなのですが、、、
場違いなレベルなのは重々承知しておりますが
できればどなたかご教授よろしくお願いいたします。
0006デフォルトの名無しさん
2007/08/06(月) 19:00:00(.*)\([^)]+\)(.*)
でどうだろう。
0007デフォルトの名無しさん
2007/08/06(月) 19:52:32ありがとうございます!できました。
凄く便利なものなんですね。
これを機会に勉強してみようかな。
0008デフォルトの名無しさん
2007/08/06(月) 20:38:010009デフォルトの名無しさん
2007/08/10(金) 02:20:23http://A.jp/123/456 → http://A.jp/test/123/456
と変換可能ですか?
オミトロンを使用して変換させてるのですが、特定のHPで変換後
http://A.jp/test/test/test/・・・・・と永遠にループするような障害にあっています
正規表現は上の表現で合っていますか?
0010デフォルトの名無しさん
2007/08/10(金) 02:21:53http://A\.jp/(*)\1/(*)\2 →http://A\.jp/test/\1/\2
http://A.jp/123/456 → http://A.jp/test/123/456
0011デフォルトの名無しさん
2007/08/10(金) 11:32:21Perlだったら、s///gのオプションのgを指定しなければ繰り返さない。
PHPなら_Allが付いてる関数を使わない。
0012デフォルトの名無しさん
2007/08/10(金) 12:30:41ちょっとそれ以外に自分では探せませんでした
オミトロンの方のスレで質問することだったのかもしれません
001312
2007/08/11(土) 01:38:05�@http://A\.jp/(*)\1/(*)\2 →�Ahttp://A\.jp/test/\1/\2と変換したいのです
�@に検索される文字列を�Aに変換するというのを目的にしています
�Aがまた検索されるので/test/test・・・とループするのだと思います
1度だけしか検索に引っかからないような表現は無いでしょうか?
例
http://www.yahoo.co.jp/123/456 → http://www.yahoo.co.jp/test/123/456
0014デフォルトの名無しさん
2007/08/11(土) 02:09:23ループして適用されるのはオミトロンの事情では
ここで訊いても無駄
001512
2007/08/11(土) 02:40:300016デフォルトの名無しさん
2007/08/13(月) 08:17:52$pat = "(https?:\/\/[-_.!~*'()a-zA-Z0-9;/?:@&=+$,%#]+)";//検出パターン
$rep = "<a href=\"\\1\">\\1</a>";//置換パターン
$body = ereg_replace($pat, $rep, $body);
で、大体はOKなのですが、URLのあとに例えば
<a href="http://yahoo.co.jp/">hello</a>私のHP
のように入力すると、ダブルクォーテーション以降も入ってしまいます。
(</a>の閉じカッコまで)
何か良い方法ありませんか?お願いします。
0017デフォルトの名無しさん
2007/08/13(月) 22:27:330018デフォルトの名無しさん
2007/08/14(火) 00:02:35エスケープしてみな
001916
2007/08/14(火) 00:15:17thx
$pat のことですよね?エスケープって\マークを前に付ければいいですよね?
ドットにやってみたけど駄目でした。$と/にもやってみたけど駄目でした。
0020デフォルトの名無しさん
2007/08/14(火) 00:23:360021デフォルトの名無しさん
2007/08/14(火) 01:09:29やりたいこととがよくわからん。
0022デフォルトの名無しさん
2007/08/14(火) 01:12:36002316
2007/08/14(火) 01:32:05$body="<a href=\"http://yahoo.co.jp/\">hello</a>私のHP";
$body = htmlspecialchars($body);
$pat = "(https?:\/\/[-_.!~*'()a-zA-Z0-9;/?:@&=+$,%#]+)";//検出パターン
$rep = "<a href=\"\\1\">\\1</a>";//置換パターン
$body = ereg_replace($pat, $rep, $body);
echo "<p>$body</p>";
?>
ソースをあげておきます
>>22 すみません・・
0024デフォルトの名無しさん
2007/08/14(火) 01:34:18希望する結果を提示しなさいよ
0025デフォルトの名無しさん
2007/08/14(火) 01:40:03http://yahoo.co.jp/">hello</a>
の、">hello</a>の部分のこと言ってる?
0027デフォルトの名無しさん
2007/08/14(火) 01:50:280029デフォルトの名無しさん
2007/08/14(火) 07:45:480030デフォルトの名無しさん
2007/08/14(火) 11:12:400031デフォルトの名無しさん
2007/08/14(火) 12:40:330032デフォルトの名無しさん
2007/08/14(火) 12:42:040033デフォルトの名無しさん
2007/08/14(火) 12:47:080034デフォルトの名無しさん
2007/08/14(火) 12:48:470035デフォルトの名無しさん
2007/08/14(火) 12:52:260036デフォルトの名無しさん
2007/08/14(火) 12:53:470037デフォルトの名無しさん
2007/08/14(火) 14:54:33日本語が理解できない人間が集まる。
このスレの事ですよ〜〜〜〜w
0038デフォルトの名無しさん
2007/08/14(火) 15:23:350039デフォルトの名無しさん
2007/08/14(火) 15:31:05。 | ノ ヽ
\<^i、 ● ● | もしもし、警察?
|ヽ(⌒)、( _●_) ミ 知的障害者がいるクマー
彡/ ト、_>|∪| 、`\
/ノ / ヽノ /´> )
(_/ / (_/
| /
0040デフォルトの名無しさん
2007/08/15(水) 20:18:340041デフォルトの名無しさん
2007/08/16(木) 00:16:34RHEL4です。
# cd /etc
# cat protocols | grep 12.
とすると
12 aaaaa
120 bbbbb
121 ccccc
・・・
てなふうな中身が出てきます。
「12」だけ排除したかったので
# cat protocols | grep "12[^ ]"
# cat protocols | grep 12[^$s]
等してみましたが想定どおりにいきません
うまく12以外を取り出す方法はないでしょうか。
いや、別に/etc/protocolsじゃなくてもいいんですけど
004241
2007/08/16(木) 00:20:45「120〜129の行だけ抜き出す」です
0043デフォルトの名無しさん
2007/08/16(木) 00:50:19120〜129の行を抜き出すなら
grep "\b12[0-9]\b" /etc/protocols
でいいかと
0044デフォルトの名無しさん
2007/08/16(木) 22:10:40grep2回かけるに1票。
cat ほげ | grep "^12" |grep -v "^12 "
0045デフォルトの名無しさん
2007/08/20(月) 18:49:44複数の空白を1つのアンダーバーに置換したいのですが、どうすればよいでしょうか。
空白分のアンダーバーが表示されてしまいます。
あと、Regexp-Commonなるモジュールを今日知って驚いたのですが
ほかに便利だったモジュールがあったら教えてください。
あ・・・・それとRegexpってなんて発音するんでしょうか?excite辞書にはなかったです
0046デフォルトの名無しさん
2007/08/20(月) 18:56:460047デフォルトの名無しさん
2007/08/20(月) 19:01:08元がRegular Expressionなのにか?w
0048デフォルトの名無しさん
2007/08/20(月) 19:03:13s/\s+/_/g とか。
オライリーの「詳説正規表現 第2版」の p25 の脚注には、
> "regexp" というどう見ても不格好な略称も思いつくだろう。
> 筆者はこれをどう発音するのかわからないが、
> 舌足らずの話し方をする人なら抵抗なく発音できるのかもしれない。
とあり、その筋のひとでも読み方がわかんないと言っているくらいだから、
好きなように読めば良いんじゃないかな。
0049デフォルトの名無しさん
2007/08/20(月) 19:13:58perlは知らんが、s/ +/_/g かs/ */_/g 同様のことをすればいいだけだろ。
初歩中の初歩だ。
それから、日本語読みは「れぎゅらーえくすぷれっしょん」だな。
0050デフォルトの名無しさん
2007/08/20(月) 19:14:52正規表現で判定するとして
html?$ と
\.html?$
ではどちらが高速なのでしょうか?
言語は C++ なのですが…
0051デフォルトの名無しさん
2007/08/20(月) 19:21:00速度の問題は、実測ありき。
0052デフォルトの名無しさん
2007/08/20(月) 21:38:240053デフォルトの名無しさん
2007/08/20(月) 22:12:50単純に末尾がhtmlまたはhtmで終わってるかの判断でラクをするか
拡張子ということで\.もちゃんと書くか、の違いのつもりです。
0054デフォルトの名無しさん
2007/08/20(月) 22:17:50開始文字が . だから、まず文字列中から . を検索するでしょ。
. は h よりも出現個数が少ないと思われる。
0055デフォルトの名無しさん
2007/08/20(月) 22:29:41なるほど…参考になりました。
テストしてみます。
0056デフォルトの名無しさん
2007/08/20(月) 23:11:24regexp ・・・ レジェックスップ (Regular Expression の略です)
ちなみに、
UFO ・・・ ユーフォー (Unidentified Flying Object)
WGA ・・・ ウガ (Windows Genuine Advantage Notifications)
USA ・・・ ウサ (United States of America)
IME ・・・ イメ (Input Method Editor)
0057デフォルトの名無しさん
2007/08/20(月) 23:30:310058デフォルトの名無しさん
2007/08/21(火) 00:11:46ユーエスエーだし、アイエムイー。
こういう読み方って個人で色々あって面白いな。
0059デフォルトの名無しさん
2007/08/21(火) 00:15:35006048
2007/08/21(火) 01:15:56"regex" の "g" は "Regina" でなく "regular" の発音で、
"FedEX" と同じようなリズムで読むとある。
カタカナ読みだと「レゲックス」か「レグエックス」あたりが近いかな?
漏れは、 "regex" は「レジェックス」って読むけど、
"regexp" は「レグエックスピー」って読んでるな。
0061デフォルトの名無しさん
2007/08/21(火) 02:16:250062・∀・)っ-○◎●
2007/08/21(火) 04:32:360063デフォルトの名無しさん
2007/08/21(火) 10:15:53このべた過ぎる読み方が多数派だと思う
006456
2007/08/21(火) 13:33:47あのな、regexp (あるいは regex) はな、Regular Expression の略語なんだ。
略語にさ、必ず読み方があるとは思うなよ。
UFO ・・・ ユーフォー は、たまたま語呂がいいからそう読まれているだけで、
大多数は、
WGA ・・・ ダブル・ジー・エー (アルファベットそのまんま)
USA ・・・ ユー・エス・エー (同上)
IME ・・・ アイ・エム・イー (同上)
でいいんだよ。
よって、regexp は「レギュラエクスプレッション」でいいし、「せいきひょうげん」と読んでもいい。
0065デフォルトの名無しさん
2007/08/21(火) 13:36:560066デフォルトの名無しさん
2007/08/21(火) 13:43:00UFOはそもそもフライングソーサーの間違いだそうだw
それは兎も角、nativeは一文字ずつ発音しているね。
0067デフォルトの名無しさん
2007/08/21(火) 13:50:19最近は日本の胡散臭い番組でもユーエフオーって言うようになってる
0068デフォルトの名無しさん
2007/08/21(火) 14:05:580069デフォルトの名無しさん
2007/08/21(火) 14:11:30とおじいちゃんが言ってた。
0070デフォルトの名無しさん
2007/08/21(火) 14:15:10まずは、短縮形と acronym を一緒くたに語って、「よって、〜」と演繹するのをやめるところからはじめてみよう。
0071デフォルトの名無しさん
2007/08/21(火) 14:23:04007245
2007/08/21(火) 14:27:55>>48
>>49
ありがとうございます。そう書いたつもりだったんですが、+のつけ忘れだったのかもしれません。
読み方は
>>63
のレグイーエックスピーが良いかと
0073デフォルトの名無しさん
2007/08/21(火) 14:53:490074デフォルトの名無しさん
2007/08/21(火) 15:13:270075デフォルトの名無しさん
2007/08/21(火) 16:09:08俺はファリスのほうが好きだ
0076デフォルトの名無しさん
2007/08/21(火) 16:09:470077デフォルトの名無しさん
2007/08/21(火) 16:13:520078デフォルトの名無しさん
2007/08/21(火) 16:14:090079デフォルトの名無しさん
2007/08/21(火) 16:24:57それは、英語の発音を日本語でどう発音するか、という話しだと思うけど、
Regexp の場合はそもそも英語でどう発音するか決まってないのが問題と思われ。
0080デフォルトの名無しさん
2007/08/21(火) 16:30:56NULL、nil、NUL
と言う冗談はさておき、falseのalはallのalと同じ発音だから「ファルス」は無理があると思う。
0081デフォルトの名無しさん
2007/08/21(火) 16:39:33これからもネタがないときは定期的に投下することにしよう。
0082デフォルトの名無しさん
2007/08/21(火) 16:41:550083デフォルトの名無しさん
2007/08/21(火) 18:46:52フライングソーサーはUFOの一種ですよ。
それが何であるか識別できなければ鳥だってUFOです。
ユーフォーの呼び方を広めたのはピンクレディじゃなかろうかのう(じじいの繰り言)。
0084デフォルトの名無しさん
2007/08/21(火) 18:54:43関係ないけどトランプの柄にUSADAMONってのがあってずっとUSAダモンかと思ってたんだよ
そしたらウサダモンだってさ。ローマ字かよってすげえ突っ込みたかったね
0085デフォルトの名無しさん
2007/08/21(火) 19:00:41unidentified flying object=正体不明の飛行物体
0086私ゃアシモフのシンパだで
2007/08/21(火) 21:55:40確認できてしまった段階で、UFOではなくなってしまうわけでして。
0087デフォルトの名無しさん
2007/08/22(水) 17:36:21全部削除する正規表現がわかりません。
PHPのpreg_replace()で使いたいのでperl互換正規表現で
何かしらの情報をいただければ幸いです。
失礼いたします。
0088デフォルトの名無しさん
2007/08/22(水) 18:05:450089デフォルトの名無しさん
2007/08/22(水) 20:40:13じゃなくって?
0090デフォルトの名無しさん
2007/08/23(木) 00:25:37$html = str_replace('"', '', $html);
とか・・・
0091デフォルトの名無しさん
2007/08/23(木) 11:28:010092デフォルトの名無しさん
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>
正規表現とか、そういう以前の、プログラミングの基礎の問題な気がする。
0093デフォルトの名無しさん
2007/08/23(木) 19:58:38→>>88に戻る
0094デフォルトの名無しさん
2007/08/23(木) 20:00:320095デフォルトの名無しさん
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;
?>
ツッコミどころはあるかもしれないが、
わかりやすいコーディングを心がけたから、効率は二の次な。
あと、インデントに漢字の空白つかってるから、そのままコピペじゃ動かんよ。
どうもこの掲示板、コードを正しく貼り付けられないからプログラミングの話題には向かないなぁ。
0096デフォルトの名無しさん
2007/08/23(木) 23:08:09>>88でFAなのに、何故そんなコメントやCDATAにも対応してない穴だらけのコードを
撒き散らすのか
馬鹿はこれだから困る
0097デフォルトの名無しさん
2007/08/23(木) 23:31:430098デフォルトの名無しさん
2007/08/23(木) 23:42:210099デフォルトの名無しさん
2007/08/23(木) 23:44:28>>95
<img alt="hoge's image" ...でアウト
0100デフォルトの名無しさん
2007/08/23(木) 23:46:010101デフォルトの名無しさん
2007/08/24(金) 00:33:010102デフォルトの名無しさん
2007/08/24(金) 00:52:010103デフォルトの名無しさん
2007/08/24(金) 02:33:080104デフォルトの名無しさん
2007/08/24(金) 21:20:490105デフォルトの名無しさん
2007/08/24(金) 21:49:330106デフォルトの名無しさん
2007/08/24(金) 22:14:31全角のタブはx-jisで定義されてる
http://pc8.2ch.net/test/read.cgi/hack/1141227510/
0107デフォルトの名無しさん
2007/08/24(金) 22:34:331. 読まない
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;
?>
0108デフォルトの名無しさん
2007/08/25(土) 00:31:43初めて知った・・・
0110デフォルトの名無しさん
2007/08/25(土) 11:25:122. 調べない
3. 試さない
4. 理解力が足りない
5. 人を利用することしか頭にない
0111デフォルトの名無しさん
2007/08/25(土) 11:29:590112デフォルトの名無しさん
2007/08/25(土) 11:57:48>>107 ここにリンゴが1個あるだろ。そこにもう1個リンゴをを置いてごらん、2個になっただろ?
これが1+1だ。答えは2になる。
>>109 じゃぁ1+2は?
>>107 同じように考えればいいさ。1個のリンゴがある。その横にあと2個リンゴを置けば・・ほら、3個になっただろ?
これが、1+2だ。答えは3になるんだよ。
>>109 わぁ、すっごいなぁ。
>>107 じゃぁ、問題出すよ。1+3は?答えられるかな???
>>109 せんせい、それはまだ習ってません。答えられませ〜ん。
ダメだこりゃw
0113デフォルトの名無しさん
2007/08/25(土) 12:00:040114デフォルトの名無しさん
2007/08/25(土) 12:23:19質問者の質問ということにしたいらしいねぇ
>>88より後は、全部無駄レスじゃん
0115デフォルトの名無しさん
2007/08/25(土) 13:20:24http://www.stickam.jp/profile/muteking
stickam.jp KGKGKG
http://www.stickam.jp/profile/kgkgkg
0116デフォルトの名無しさん
2007/08/25(土) 14:07:57自分のこと言われてると気付いてないみたいよ。
0117デフォルトの名無しさん
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 とか考えてみたけどダメですた
0118デフォルトの名無しさん
2007/08/26(日) 19:19:40^(.*[^.])$
0119デフォルトの名無しさん
2007/08/26(日) 19:21:22やる気あるのか?
バカは諦めなさい。
0120デフォルトの名無しさん
2007/08/26(日) 19:34:09↓スマートじゃないけど。
検索文字列:
\.\f\n.*[^.]\n\f
置換文字列:
.\n\1\n
0121デフォルトの名無しさん
2007/08/26(日) 19:43:28サンクス
ばっちりでした
>>118
なんか秀丸って行頭行末をまたぐときとかって、$^とかうまく反応して
くれないんですよね >>120でいけました 118もありがとう
0122118
2007/08/26(日) 19:51:270123デフォルトの名無しさん
2007/08/26(日) 20:00:21顔文字っぽく見える
0124デフォルトの名無しさん
2007/08/26(日) 22:09:350125デフォルトの名無しさん
2007/08/27(月) 12:32:15よろしくお願いします。
0126デフォルトの名無しさん
2007/08/27(月) 13:19:04正規表現というのは、例えば
「円周率は3.13」
という誤りを
「円周率は3.14」
と、正しく書くこと。
0127デフォルトの名無しさん
2007/08/27(月) 13:30:300128デフォルトの名無しさん
2007/08/27(月) 15:40:01キャプチャなしの括弧
ttp://developer.mozilla.org/ja/docs/Core_JavaScript_1.5_Reference:Global_Objects:RegExp
0130デフォルトの名無しさん
2007/08/28(火) 17:24:44(fire|fighter|future|fusion) と (fi(re|ghter)|fu(ture|sion))
のような場合はどちらが高速でしょうか?
013187
2007/08/28(火) 18:21:10こちらを見に来るのをすっかり忘れてしまっておりました!
大変申し訳ございませんでした。
>>88様
HTMLパーサを使うほうが良いとのご忠言、ありがとうございます。
その方向も模索させていただきます。
>>89,90様
>>91様のご指摘通り、HTMLタグのアトリビュートの"'のみを外したいと
考えておりました
>>92,95様
具体的なサンプルまで作成頂きまことにありがとうございます。
なるべく正規表現のみで実現できないかを模索しておりましたので、
その方法を選択肢から排除しておりました。申し訳ございません。
>>94様
なるほど、やはり正規表現の1発処理は諦めたほうが良いのですね。
>>97様
大賛成です。
>>100様
良いか悪いかは別としまして、モバイルサイトで出力されるHTMLを極力
シェイプアップさせるべく、アトリビュートの囲み文字を一括ではずす
ことがしたかったのです。
>>102様
失礼しました。確かにおっしゃる通りです。申し訳ございません。
0132デフォルトの名無しさん
2007/08/28(火) 18:26:410133デフォルトの名無しさん
2007/08/29(水) 13:44:15>(fire|fighter|future|fusion)
こんなことするんだったら連想配列つかえよw
0134デフォルトの名無しさん
2007/08/29(水) 21:49:22っ Benchmark
0135デフォルトの名無しさん
2007/08/30(木) 01:14:58「X=\\\\\\\\ho\\,ge\\\\」を
「X=\\ho,ge」にするにはどうすればよいでしょうか?
具体的には「\\\\」を「\」一文字に、「\\,」の場合はカンマのみにしたいのです。
\\{2,4} なんかを思いついて弄ってみたんですが、さっぱりでして……
0136デフォルトの名無しさん
2007/08/30(木) 01:19:53\\\\ を \ に置換すればいいんでない?
0137デフォルトの名無しさん
2007/08/30(木) 22:17:040138デフォルトの名無しさん
2007/08/30(木) 22:19:52でいいかな
0139デフォルトの名無しさん
2007/08/30(木) 23:44:00純粋にffffffまでの数字かどうかはこれでいけるかな?
(?<![0-9a-f])0*[0-9a-f]{6}(?![0-9a-f])
0140デフォルトの名無しさん
2007/08/31(金) 07:18:586桁というのはチェックしたいです。
0141デフォルトの名無しさん
2007/08/31(金) 11:13:52否定(訂正)していたのを別のオライリーの本で見かけたんだけど
タイトルを忘れてしまいまして
どなたかご存じないでしょうか?
0142デフォルトの名無しさん
2007/09/02(日) 01:16:22正規表現を教えてください。
AiiiiiiiiB にはマッチして欲しい
BiiiiiiiiA にはマッチして欲しくない
0143デフォルトの名無しさん
2007/09/02(日) 02:06:350144デフォルトの名無しさん
2007/09/02(日) 08:37:32AiBiAiB
BiAiBiA
は、マッチするの、しないの?
0145デフォルトの名無しさん
2007/09/02(日) 18:40:31「list.php?table=moe&page=1」の最後の値が1〜9999まで
マッチするような正規表現を教えていただけませんか?
正規表現むずかしい><
0146デフォルトの名無しさん
2007/09/02(日) 19:03:51適当
0147デフォルトの名無しさん
2007/09/02(日) 19:12:57うわーどうもありがとう。
正規表現って便利そうだけど難しくてなかなか^^;
0148デフォルトの名無しさん
2007/09/05(水) 18:31:09URLの相対パスを正規表現でマッチさせようとしているのですが
「../」と「./」の区別が付きません。どのようにして区別させたらよいのでしょうか?
0149デフォルトの名無しさん
2007/09/05(水) 18:54:010150デフォルトの名無しさん
2007/09/05(水) 18:58:25例えば「../././abc.html」の様なURLがあったとして
「./」のをマッチさせるのに「\./」とすると「../」にもマッチしてしまうので
「./」だけにマッチさせるにはどうしたらいいのかな?と思いまして…
0151デフォルトの名無しさん
2007/09/05(水) 19:16:230152デフォルトの名無しさん
2007/09/05(水) 19:22:56時間を取ってそのパターンの意味を調べさせてもらいます
0153デフォルトの名無しさん
2007/09/06(木) 17:40:380154デフォルトの名無しさん
2007/09/09(日) 00:58:20どこさありますか。
0155デフォルトの名無しさん
2007/09/09(日) 01:03:360156デフォルトの名無しさん
2007/09/13(木) 10:45:48^0+*
でよいでしょうか?
0157デフォルトの名無しさん
2007/09/13(木) 11:45:240158デフォルトの名無しさん
2007/09/13(木) 11:59:33ありがとうございます!
0159デフォルトの名無しさん
2007/09/14(金) 11:40:36全然消えない…この式じゃ間違ってる?
●{1}.*●{1}.*●{1}
ちなみに消したいのはこのスレ
ttp://pc11.2ch.net/test/read.cgi/jisaku/1189612206/
0160デフォルトの名無しさん
2007/09/14(金) 11:44:310161デフォルトの名無しさん
2007/09/14(金) 12:05:29グーグルでも●の検索結果ゼロだしどうしたものやら
0162デフォルトの名無しさん
2007/09/14(金) 12:25:520163デフォルトの名無しさん
2007/09/14(金) 13:34:57前方一致ならそれでもいいはずだが、完全一致なら最後にもう一組 ".*" が必要。
0164デフォルトの名無しさん
2007/09/14(金) 14:21:58使えるかどうかは、ライブラリおよび環境設定による。
0165デフォルトの名無しさん
2007/09/14(金) 18:54:07ブラウザのほうのスレで聞いて来るわ
>159は撤回ってことで
0166デフォルトの名無しさん
2007/09/14(金) 19:25:12こうじゃねーの
0167デフォルトの名無しさん
2007/09/14(金) 22:07:35格好悪い顔文字作るなハゲ
0168デフォルトの名無しさん
2007/09/15(土) 08:05:30とかでいいんじゃないすか(^ω^;)
0169デフォルトの名無しさん
2007/09/16(日) 00:30:09ちょっとかわゆい
0170デフォルトの名無しさん
2007/09/17(月) 08:47:49$text = join ('',<>);
$text = ~S
{
(".*?")|(/\*(.|\n)*?\*/)|(//[^\n]*)
}{$1}gx;
print $text;
0171デフォルトの名無しさん
2007/09/17(月) 13:04:12正規表現を試してます。
が、以下のスクリプトを動かしても"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++;
}
0172デフォルトの名無しさん
2007/09/17(月) 17:53:23なんとなーくという感じになってきたんですが…、もう少し何かorz
0173デフォルトの名無しさん
2007/09/17(月) 22:49:11/\b[0-9]{4}\b/ //4ケタの数字にマッチ
でいけますた、スレ汚しスマソ。
0174デフォルトの名無しさん
2007/09/23(日) 23:22:56A A B
A B A
東京 埼玉 東京
埼玉 東京 埼玉
埼玉 千葉 埼玉
のように
((仙台|東京|名古屋).*大阪.*\2)|((仙台|東京|大阪).*名古屋.*\4)
0175デフォルトの名無しさん
2007/09/23(日) 23:37:37JaneViewの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)
といった感じでやっています。
リストの要素が少なければ | でつないでいけばいいのですが、リストが多いととんでもない状態になりますよね。
どうすればこれをもっとスマートな表記にできるでしょうか?
0176デフォルトの名無しさん
2007/09/27(木) 21:16:09とか?俺のJaneではヒットした。・・・一体何に使うのか気になる。
0177デフォルトの名無しさん
2007/09/27(木) 23:38:11(?!\1)でできました。
アニメサロンの延長情報確定スレに貼られている表で
邪魔な表を貼り付けられるのをあぼーんしたかったんだ。
0178デフォルトの名無しさん
2007/09/28(金) 11:42:540179デフォルトの名無しさん
2007/09/28(金) 11:45:350180デフォルトの名無しさん
2007/10/03(水) 18:17:050181デフォルトの名無しさん
2007/10/03(水) 18:39:110182デフォルトの名無しさん
2007/10/03(水) 19:52:07内容が分かる程度に端折って書くと
「質問の仕方をしらない」等の苦情
具体的且つ詳細に書くと答えられないくせにw
0183デフォルトの名無しさん
2007/10/03(水) 22:13:050184デフォルトの名無しさん
2007/10/03(水) 22:21:48五日経っても回答得られなかった現実をきちんと見据えて、
いい加減諦めて「もっと具体的に」書いた方が良いのでは?
0185デフォルトの名無しさん
2007/10/03(水) 22:57:500186デフォルトの名無しさん
2007/10/03(水) 23:54:490187デフォルトの名無しさん
2007/10/04(木) 00:25:03もっと具体的に
0188デフォルトの名無しさん
2007/10/04(木) 02:24:110189デフォルトの名無しさん
2007/10/04(木) 08:37:310190デフォルトの名無しさん
2007/10/05(金) 00:59:38PHPの正規表現に詳しいやつがいたら教えてほしい
preg_replaceで置換をしたいんだが
たとえば
/sample/test/14567.jpg
というのを
/sample/test/backup/14567.jpg
というように最後の/を/backup/に置き換えるにはどうしたらいい?
いろいろ試してみたが俺のレベルじゃどうにもならんかった
0191デフォルトの名無しさん
2007/10/05(金) 01:29:350192デフォルトの名無しさん
2007/10/05(金) 16:25:450193デフォルトの名無しさん
2007/10/05(金) 22:30:53pathinfo使えば?
0194デフォルトの名無しさん
2007/10/06(土) 10:35:590195デフォルトの名無しさん
2007/10/06(土) 22:47:060196デフォルトの名無しさん
2007/10/06(土) 23:56:30というような文字列があったとき、
[あはばば, ばばばば]
あばばばば
あば
[あばばば, ば, ばばばばはば, ばば]
と分割したいのですが、どのようにしたらいいでしょうか?
(\\[?.*\\]?),とかやってみたのですが全然だめでした orz
なかのあばば〜は変化します。
0197デフォルトの名無しさん
2007/10/06(土) 23:57:28まずは >>1 を見てみて。
0198デフォルトの名無しさん
2007/10/07(日) 00:00:39すいません、.NETのSystem.Text.RegularExpressionsのRegex.Split()で置換しています。
0199デフォルトの名無しさん
2007/10/07(日) 00:10:25すいません、置換じゃなくて分割でした orz
0200デフォルトの名無しさん
2007/10/07(日) 01:56:00まず、[あば,ばばば] を うんこっこー に痴漢する
(うんこっこー に痴漢した文字列は堆肥しておく)
うんこっこー, あばばばば, あば, うんこっこー
となるので、これを分割する。そのあと、
うんこっこー を堆肥しておいた文字列に戻す。
0201デフォルトの名無しさん
2007/10/07(日) 04:37:56Perl ですまんけどこんな感じで。
$str =~ s/(\[[^]]+\]|[^,]+)(?:(,\s*)|$)/\1うんこっこー/g;
$ary = split(/うんこっこー/, $str);
0202デフォルトの名無しさん
2007/10/07(日) 12:19:13文字列の先頭からある文字列(たとえば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個の正規表現で実現させたいです。
0203デフォルトの名無しさん
2007/10/07(日) 13:02:540204デフォルトの名無しさん
2007/10/07(日) 13:19:38s/^((?!XYZ).)*//
0205デフォルトの名無しさん
2007/10/07(日) 13:27:330206デフォルトの名無しさん
2007/10/07(日) 13:30:590207デフォルトの名無しさん
2007/10/07(日) 13:32:25> とすれば(1),(2)ともうまくいきますが、
ウソつけ!
0208202
2007/10/07(日) 15:49:43>>204
(?!pattern) が使えるんじゃないかと思って
質問前にPerlのマニュアルを読んだんですがうまくいきませんでした。
なるほど、こうすればうまくいくんですね。
>>207
s/^.*?XYZ/XYZ/ || s/^.*//; の間違いでした。失礼しました。
>>205-206
ということで、元の質問が間違ってたので間違いです。
試行錯誤の末、 s/^(.*(?=XYZ)|.*)//; という別解を見つけました。
0209デフォルトの名無しさん
2007/10/07(日) 20:10:50涼子、愛、美姫以外の文字列が来た場合を検知したいんですが。
涼子、愛、美姫のどれかを検知する場合、
pattern = '/涼子|愛|美姫/';
ですが、涼子、愛、美姫以外を検知するにはどう書いたらいいですか?
0210デフォルトの名無しさん
2007/10/07(日) 20:13:060211209
2007/10/07(日) 20:21:07すみません。
涼子、愛、美姫以外を含む文字列です。
たとえば、涼子愛子美紀が来たばあい、
「子」が紛れ込んでることを検知したいのですが。
0212209
2007/10/07(日) 20:36:57'/^涼子|^愛|^美姫/';
0213209
2007/10/07(日) 20:38:53すみません。途中でした。
'/^涼子|^愛|^美姫/';
だと涼子、愛、美紀も全部ひっかかってしまいます。
それだけを含んで、それ以外の文字列を全然含まないようにしたいのですが。
0214デフォルトの名無しさん
2007/10/07(日) 20:55:01半角または全角の数字から始まるはどう書きますか?
0215デフォルトの名無しさん
2007/10/07(日) 21:39:55/^(?:涼子|愛|美姫)*$/ とか?
0216デフォルトの名無しさん
2007/10/07(日) 21:40:46/^(?:\d|1|2|3|4|5|6|7|8|9|0)/ とか?
0217デフォルトの名無しさん
2007/10/08(月) 00:15:19$result = preg_replace( '/涼子|愛|美姫/', '', $string);
echo 'おまんこ';
0219デフォルトの名無しさん
2007/10/08(月) 17:38:510220デフォルトの名無しさん
2007/10/08(月) 20:14:07って答えでFA?
0221ヽ・´∀`・,,)っ━━━━━━┓
2007/10/19(金) 03:35:030222デフォルトの名無しさん
2007/10/25(木) 17:50:492つめの*の部分で、comやjp等にマッチさせたいのですが、
http:\/\/(.+\.)?example\..+/では、
http://www.example.hoge.com/なんかもマッチしてしまいます。
http:\/\/(+\.)?example\.(com|jp)/とかにすると、
新しいドメインがでてきたときに対応できません。
何かよい方法ありませんでしょうか?
0223デフォルトの名無しさん
2007/10/25(木) 18:33:14「新しいドメイン」ってのはどんなところまでを想定してる?
0224デフォルトの名無しさん
2007/10/25(木) 18:49:540225デフォルトの名無しさん
2007/10/25(木) 19:51:520226デフォルトの名無しさん
2007/10/27(土) 16:43:32最近、こうして何の作意もなく打ったものが正則表現に見えてどうしようもない
0227デフォルトの名無しさん
2007/11/08(木) 00:14:41その間に"/../"や"/./"が発生しない文字列を
正規表現では記述できますか?
[×]
/etc/../usr/./local/
/../
/./
[○]
/etc/sysconfig/
/abc/.aaaa/
0228デフォルトの名無しさん
2007/11/08(木) 05:41:48正規表現で一気に行うんじゃなくて、
"/" で分割して、各パーツがドットだけで構成されていたらハネる、とか
(ディレクトリトラバーサル対策ならよく調べたほうがいいかも)
0229デフォルトの名無しさん
2007/11/08(木) 08:45:57xmlのxsd:patternで書きたかったのですが、だめそうです。考え直してみます。
0230デフォルトの名無しさん
2007/11/08(木) 13:40:57これでどうかな。
^/(([^/.][^/]*|\.[^/.][^/]*|\.\.[^/]+)/)*$
汚染チェックに使うなら>>228の言うようにした方がいいな。
0231デフォルトの名無しさん
2007/11/11(日) 17:33:05BAD+[SJISコード]を正規表現で表すにはどう書いたらいいですか?
0232デフォルトの名無しさん
2007/11/11(日) 17:34:320233デフォルトの名無しさん
2007/11/11(日) 23:06:580234デフォルトの名無しさん
2007/11/11(日) 23:47:190235デフォルトの名無しさん
2007/11/11(日) 23:52:310236デフォルトの名無しさん
2007/11/12(月) 00:15:220237デフォルトの名無しさん
2007/11/12(月) 01:18:32ここに書き込みました。
調べるだけ調べたんですけど、やはりだめでしょうか
0238デフォルトの名無しさん
2007/11/12(月) 01:42:050239デフォルトの名無しさん
2007/11/12(月) 04:32:210240デフォルトの名無しさん
2007/11/12(月) 09:32:04お、やっと気づいたようだね。それじゃあバイバーイ!
0241デフォルトの名無しさん
2007/11/12(月) 19:50:580242デフォルトの名無しさん
2007/11/12(月) 19:59:530243241
2007/11/12(月) 21:10:47ありがとうございます。「文字を消費する」とはどういうことでしょうか?
イメージが湧きません。
0244デフォルトの名無しさん
2007/11/12(月) 22:24:56最初の /./ は "a" にマッチして消費する。
すると、なんと言うかテキストエディタのカーソルが一つ進むのをイメージしてくれたらよいか、
二個目の /./ が "b" にマッチできるようになる。
0245デフォルトの名無しさん
2007/11/12(月) 22:30:07カーソルって例えはナイス!
0246241
2007/11/12(月) 23:16:33なるほど、よくわかりました。ありがとうございます。
0247デフォルトの名無しさん
2007/11/15(木) 07:57:080248デフォルトの名無しさん
2007/11/15(木) 16:55:180249デフォルトの名無しさん
2007/11/15(木) 20:14:330250デフォルトの名無しさん
2007/11/16(金) 00:58:31スレ違い。
0251デフォルトの名無しさん
2007/11/16(金) 23:29:30左
0252デフォルトの名無しさん
2007/11/17(土) 01:06:19(hoge)hoge(hoge).txtを(hoge) hoge(hoge).txtとしたい場合はどう書けばいいのでしょうか。
)の直後にスペースを入れ、拡張子前の)の直後には入れたくないんです。
0253デフォルトの名無しさん
2007/11/17(土) 01:30:29" ." -> "."
0254デフォルトの名無しさん
2007/11/17(土) 01:34:08なるほど。2回やるという手が・・・。ありがとうございました。
0255デフォルトの名無しさん
2007/11/17(土) 09:27:48"^(\([^)]*\))" -> "$1 "
"^(\([^)]*\))(.*)" -> "$1 $2"
とか。いずれにしても調整が必要
0256デフォルトの名無しさん
2007/11/18(日) 19:15:56「// xxxxx EXEC 〜」で始まり、
「// xxxxx EXEC 〜」で始まる1行前までを
1グループで取得したいと考えています
(?ims:(^\/\/+\s+EXEC+.+))
だとまるまる取得してしまうのはわかるのですが、
これを上記の様に取得するにはどう書けばよいのでしょうか?
ご教授よろしくお願いいたします。
0257デフォルトの名無しさん
2007/11/18(日) 20:18:030258デフォルトの名無しさん
2007/11/19(月) 02:39:09なんでスラッシュをエスケープしてんだよw
.NET の正規表現なら可変長の戻り読みが使えたと思うから、
その始まりのしるしと終端のしるしを戻り読みの部分と先読みの部分に置けば?
.NETで可変長の戻り読みができなかったらすまんw
0259デフォルトの名無しさん
2007/11/22(木) 22:35:090260デフォルトの名無しさん
2007/11/22(木) 23:13:200261デフォルトの名無しさん
2007/11/22(木) 23:17:32電卓開く
↓
関数電卓モードにする
↓
16進モードにする
↓
21a4と打つ
↓
10進モードにする
正規表現の話じゃねーし
0262デフォルトの名無しさん
2007/11/23(金) 01:54:140263デフォルトの名無しさん
2007/11/23(金) 01:58:02これでおk
0264デフォルトの名無しさん
2007/11/23(金) 02:44:380265デフォルトの名無しさん
2007/11/23(金) 02:46:280266デフォルトの名無しさん
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[ と記述すると、正規表現の括弧の対応が合ってないとか怒られてしまいます。
非常に初心者な質問ですいません。
0267デフォルトの名無しさん
2007/11/23(金) 09:26:000268デフォルトの名無しさん
2007/11/23(金) 11:43:08FrameworkFrame
などといったような「同じ文字列とそれに挟まれた別な文字列」を取り出したいのですが、
どういう文を書いたら実現できますか?
PHPのpreg_replaceで使用します。
よろしくお願いします。
0269デフォルトの名無しさん
2007/11/23(金) 12:00:17以下は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);
0270デフォルトの名無しさん
2007/11/23(金) 12:50:33PHP でいけるかどうかは知らん
0271デフォルトの名無しさん
2007/11/23(金) 12:53:54日本語読解力に大きく欠けますな
0272デフォルトの名無しさん
2007/11/23(金) 13:00:210273デフォルトの名無しさん
2007/11/23(金) 13:05:34最長一致だから。
これが目的の物かはともかくとして。
0274デフォルトの名無しさん
2007/11/23(金) 13:51:50すみません、説明不足でした。
同じ文字列というのも未知なのです。
>>270.
ありがとうございます。
Rubyならいける、というのは期待が持てました。
早速調べてみます。
>>272-273
ここも説明不足でした。
「同じ文字列とそれに挟まれた別な文字列」の全てを取得したいです。
つまりThisIsThePenという文字列からThisIsTh(とePe)を取得できるようにしたいのです。
0275デフォルトの名無しさん
2007/11/23(金) 13:56:240276デフォルトの名無しさん
2007/11/23(金) 14:00:51PHP でいk(ry
'ThisIsThePen'.scan(/((.+).+\2)/) { puts($1) }
0277デフォルトの名無しさん
2007/11/23(金) 19:31:220278デフォルトの名無しさん
2007/11/23(金) 19:42:510279デフォルトの名無しさん
2007/11/23(金) 19:46:560280デフォルトの名無しさん
2007/11/24(土) 08:40:39すごいね
正規表現分かる人尊敬するわ
0281デフォルトの名無しさん
2007/11/24(土) 09:46:49すげーとか思って思考停止してるから理解できないだけ。
0282デフォルトの名無しさん
2007/11/24(土) 09:48:41私も頑張って勉強します
0283デフォルトの名無しさん
2007/11/24(土) 10:09:170284デフォルトの名無しさん
2007/11/24(土) 11:18:230285デフォルトの名無しさん
2007/11/25(日) 17:53:21私は女性です
0286デフォルトの名無しさん
2007/11/25(日) 19:20:340287デフォルトの名無しさん
2007/11/25(日) 20:30:250288デフォルトの名無しさん
2007/11/25(日) 20:32:190289デフォルトの名無しさん
2007/11/26(月) 00:01:46ホモセクシュアルは同性愛って意味だよ
当然、女性同士でも使う
0290デフォルトの名無しさん
2007/11/26(月) 12:46:15サピエンス
0291デフォルトの名無しさん
2007/11/26(月) 15:19:450292デフォルトの名無しさん
2007/11/26(月) 15:26:000293デフォルトの名無しさん
2007/11/26(月) 18:38:030294デフォルトの名無しさん
2007/11/27(火) 08:45:29残念です
0295デフォルトの名無しさん
2007/11/27(火) 11:39:19class="***" や id="**" , aタグの target="***" を削除したいんですが、観よう見真似でやったのですが
マッチしてくれません。どなたか..
(id|class|target|title|style|name)=[\+\$\;\?\.\W\w%,!#~*/:@&=_-]+?
PC用に吐き出されたデータを、携帯用に変換したくて..
0296デフォルトの名無しさん
2007/11/27(火) 11:56:070297デフォルトの名無しさん
2007/11/29(木) 17:43:52<!--[^-->]*-->
で試したのですが[^-->]だと各文字を含まないとなってしまうのでだめでした。
文字列を含まないって表現方法がわかりません。
お手数ですがよろしくお願いします。
0298デフォルトの名無しさん
2007/11/29(木) 18:01:50貪欲でないマッチ
0299デフォルトの名無しさん
2007/11/29(木) 18:35:11html パーサ使え
0300297
2007/11/29(木) 19:51:50ありがとうございます。
貪欲でないマッチでググッた所無事解決しました。
>>299
プログラム内で使いたかったので、
パーサを使うとhtml記述ミスなどがあった場合に面倒なので正規表現を使う事にしました。
0301デフォルトの名無しさん
2007/11/29(木) 23:53:17アホ
0302デフォルトの名無しさん
2007/12/02(日) 03:37:22<th>ほげほげ<br/>ほげほげ</th>
のような<th>で囲まれた内部の<br/>だけ削除したいのですが、
<br/>の数が不定で困ってます。どう書けばよいのでしょう?
0303デフォルトの名無しさん
2007/12/02(日) 17:04:43html パーサ使え
0304デフォルトの名無しさん
2007/12/03(月) 18:49:06どのようにすればいいのですか?
正規表現: Win.*Mac.*Linux.*Sun
上記のようにやると、順番が固定されてしまいます。
どのような順番でもいいので4つ入っていれば
ヒットさせたいのです。
0305デフォルトの名無しさん
2007/12/03(月) 19:19:07肯定戻り読み
0306デフォルトの名無しさん
2007/12/03(月) 21:22:520307デフォルトの名無しさん
2007/12/03(月) 23:37:29末尾は必ず '秒' )を一気に半角数字と「分⇒m」「秒⇒s」のように一気に置換
する方法がありますか? 全角数字でも '2007年' のような文字列はそのま
まにしたいのです。
【例】
'6分08秒' ⇒ 6m08s
0308デフォルトの名無しさん
2007/12/04(火) 00:20:030309デフォルトの名無しさん
2007/12/04(火) 09:06:00のなら
>【例】
>'6分08秒' ⇒ 6m08s
は
'6分08秒' ⇒ 6m08s
ならないといけないの?
それとも【例】のようにして欲しいの?
0310デフォルトの名無しさん
2007/12/04(火) 21:11:440311デフォルトの名無しさん
2007/12/04(火) 21:38:520312デフォルトの名無しさん
2007/12/04(火) 21:39:270313デフォルトの名無しさん
2007/12/05(水) 00:33:460314デフォルトの名無しさん
2007/12/05(水) 18:08:230315デフォルトの名無しさん
2007/12/05(水) 19:45:45マッチさせるのは “http://〜/” の部分で充分でして、それだけなら http:\/\/[^\/]+\/ でイケそうです。
ただ今回やりたいのは、特定のドメイン(というかサーバ)の URL はマッチさせない、ということです。
たとえば http://www.google.co.jp/ にはマッチさせたくない、ということです。
これはどんな書き方になるでしょうか?
Perl な正規表現だと具合いいです。
0316デフォルトの名無しさん
2007/12/06(木) 06:31:42>2
0317デフォルトの名無しさん
2007/12/07(金) 07:08:24秀丸のやつ?鬼車?
0318デフォルトの名無しさん
2007/12/07(金) 23:18:360319デフォルトの名無しさん
2007/12/08(土) 14:11:45秀丸のは確かに速い
速いけど、他で出来て秀丸で出来ない表現が多いし
それを無理やり秀丸で表現すると結局遅くなることも多い
0320デフォルトの名無しさん
2007/12/08(土) 23:27:27これで2桁目に0か1が付くか付かないか
という表現になりますか?
0321デフォルトの名無しさん
2007/12/08(土) 23:32:07それだと、0〜9 と 00〜19 にマッチ
0322デフォルトの名無しさん
2007/12/08(土) 23:38:08C/Migemo 1.2 リリース版 for Windowsに付属の辞書を読み込ませhoをmigemo_queryしてみたことろ
([ホ☆★ほ逋捕縫豊B萠萌]|ho|Ho)と、なぜかBが含まれた文字列がかえってきました。
この文字列を利用して検索をすると当たり前ながらBに反応してしまうのです。
そこで質問なのですが、どうしてBが含まれるのでしょうか?
もしかして私の使い方が間違っているのでしょうか?
0324デフォルトの名無しさん
2007/12/09(日) 00:33:23「すみません」だろ
日本から出て行けよ
0325デフォルトの名無しさん
2007/12/09(日) 00:50:180326デフォルトの名無しさん
2007/12/09(日) 01:08:50完全にスレ違いな気がするが、どこが適切か知らないので一応答えておくと、
ホウ素の元素記号がBだから。他にはsaで酸素のOが引っかかったりするはず。
0327デフォルトの名無しさん
2007/12/09(日) 01:41:55おおおおおおお!
なるほど…
おかげで謎が解けました
ありがとうございました。
0328デフォルトの名無しさん
2007/12/18(火) 00:38:450329デフォルトの名無しさん
2007/12/18(火) 01:09:550330デフォルトの名無しさん
2007/12/18(火) 04:59:570331デフォルトの名無しさん
2007/12/18(火) 12:24:04↑00〜31↑00〜1f(16進数)
正規表現でこのように設定したいのですがうまくいきません。
/image/(00_00、01_01・・・10_0a・・・31_1f)
こういったものを書きたいのですが可能でしょうか?
0332デフォルトの名無しさん
2007/12/18(火) 12:29:21[] は一文字にしかマッチしないのでー。
正規表現はふつうは数値の範囲は指定できないのでー。
([0-2][0-9a-f]|30|31)_[01][0-9a-f]\.jpg
0333デフォルトの名無しさん
2007/12/18(火) 13:19:37もしかして、 10進部分と 16進部分を対応させたいと思ってる?
それだと正規表現だけでは簡単に書けないと思う。
0334デフォルトの名無しさん
2008/01/05(土) 11:31:41>検索対象に正規表現が一致した場合
と
>検索対象が正規表現に一致した場合
どっちが正しいのでしょう?
前者が正しいような気がするのですが、よく判らなくなってきました
0335デフォルトの名無しさん
2008/01/05(土) 12:04:310336デフォルトの名無しさん
2008/01/05(土) 17:24:34文脈によるというかどっちを軸に語るかによるんじゃないかな。
0337デフォルトの名無しさん
2008/01/05(土) 17:36:470338デフォルトの名無しさん
2008/01/05(土) 21:41:390339デフォルトの名無しさん
2008/01/05(土) 21:42:190340デフォルトの名無しさん
2008/01/05(土) 21:45:360341デフォルトの名無しさん
2008/01/06(日) 14:50:28http://capslockabcjp.kitunebi.com/handmade.html
/***/にマッチしないきがするけど。
0342デフォルトの名無しさん
2008/01/06(日) 15:05:500343デフォルトの名無しさん
2008/01/06(日) 15:29:120344334
2008/01/06(日) 15:59:55気にしない事にします。
0345デフォルトの名無しさん
2008/01/06(日) 23:17:00else if (ch == '*') st = 4; // 追加
図のほうに
S4->S4 [label="*"];
だね
0346デフォルトの名無しさん
2008/01/07(月) 00:05:54パターンは固定だから、俺はこっちがしっくりくる
0347デフォルトの名無しさん
2008/01/10(木) 03:38:22"one three two four"
にしたいのです。正規表現でスワップ(位置交換)したいんですが
ググってもあんまりなかったです。
一応、java.util.regex.*; 使ってます。
0348デフォルトの名無しさん
2008/01/10(木) 03:41:41"one four three two five"
1 2 3 4 5
1 4 3 2 5
でした。
0349デフォルトの名無しさん
2008/01/10(木) 16:36:35Matcher matcher = pattern.matcher("one two three four five");
String str = matcher.replaceFirst("$1 $4 $3 $2 $5");
とりあえず
0350デフォルトの名無しさん
2008/01/10(木) 17:42:18おお、ありがとうございます。
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)ではこういう感じみたいなんですけど実際はどうなんでしょうか。
0351デフォルトの名無しさん
2008/01/10(木) 21:27:54java コンパイル ⇒ 正規表現コンパイル
つまり2回コンパイルされる事に注意。
ここらへんの理屈がわかってないとツライよ。
0352349
2008/01/11(金) 00:55:38とりあえず最大数は気にしなくていい、[\$]1000とかでもいけるように見える
Petternクラスでは0始まりは8進数になるけど、Matcherクラスでは10進のまま
PetternのescapeとMatcherのappendReplacementあたりのソースを見るといい
うまくまとめられてないけど、2ch止まるらしいので今のうちに書いとく
0353デフォルトの名無しさん
2008/01/11(金) 17:24:33そこまで頑張らなくてもどこかにあるJavaのフォーラムで質問した方がいいんじゃないですか?
0354デフォルトの名無しさん
2008/01/11(金) 17:39:560355デフォルトの名無しさん
2008/01/11(金) 20:10:07コメントが1行に収まっているなら簡単なんだけど、複数行にまたがる場合にどうすればいいかわからない
0356デフォルトの名無しさん
2008/01/11(金) 20:22:05パターンスペースとホールドスペースを駆使すればできなくはないが、お勧めできない。
awkかperl、或いは最近のスクリプト言語を使う方がいい。
0357デフォルトの名無しさん
2008/01/12(土) 08:24:05---------------------------------------
# decom.sed
/\/\*/ {
:loop
/\*\// { b break }
N
b loop
:break
s/\n/ /g
s/\/\*.*\*\///g
}
---------------------------------------
0358デフォルトの名無しさん
2008/01/12(土) 08:30:01ちょろっと探したらすぐ見つかったしorz
0359デフォルトの名無しさん
2008/01/12(土) 09:21:03本格的に使うのは、ちょっと無理。
0360デフォルトの名無しさん
2008/01/12(土) 09:51:59↓
プリプロセッサにかける
↓
加工したプリプロセッサ指令を元に戻す
0361デフォルトの名無しさん
2008/01/14(月) 12:03:15とにかく記号という記号はエスケープしていて結構カオスになっているのですが、
エスケープしなくてもいい記号一覧とかどっかにありませんか?
!"#$%&'()-=^~\|@`[{;+:*]},<.>/?_
これが
\!\"\#\$\%\&\'\(\)\-\=\^\~\\\|\@\`\[\{\;\+\:\*\]\}\,\<\.\>\/\?\_
こんな感じに・・・
0362デフォルトの名無しさん
2008/01/14(月) 12:22:130363デフォルトの名無しさん
2008/01/14(月) 12:23:190364デフォルトの名無しさん
2008/01/14(月) 12:40:39レスありがとう。
普通に半角スペース使うことにしますね。
0365361
2008/01/14(月) 15:43:29というわけで自己解決しました。
0366デフォルトの名無しさん
2008/01/14(月) 18:31:15\s
0367デフォルトの名無しさん
2008/01/14(月) 18:36:27秀丸じゃ使えないんだよな
0368デフォルトの名無しさん
2008/01/14(月) 18:37:44つーか、それホワイトスペース一般じゃないか?
0369デフォルトの名無しさん
2008/01/14(月) 18:55:230370デフォルトの名無しさん
2008/01/14(月) 19:43:170371デフォルトの名無しさん
2008/01/14(月) 20:00:29半角スペースの代わりにはならないよ
0372デフォルトの名無しさん
2008/01/14(月) 22:22:22This is a pen.
に対してhisをチェックした場合に引っかからないのが正しいです。
英単語の定義は[A-Za-z]{3,}とする予定で、単語の間はカンマやハイフン、セミコロンなどもあり。
前後が[^A-Za-z]だけだと行頭行末がダメ。。。
0373デフォルトの名無しさん
2008/01/14(月) 22:23:48\b
0374デフォルトの名無しさん
2008/01/14(月) 22:28:090376デフォルトの名無しさん
2008/01/14(月) 22:41:540377デフォルトの名無しさん
2008/01/14(月) 22:44:30まあ既に>>368が言ってるけど
0378デフォルトの名無しさん
2008/01/17(木) 16:41:25@book{sagan:1954,
author = {Fran\c{c}ois Sagan},
title = {Bonjour Tristesse}
}
こんな感じの文字列(BibTeX)を取り込んでハッシュにするためには
どのような正規表現を用いればよいでしょうか。
ポイントは
1. コンマで分割する。
2. {}の中のコンマは無視する。
というあたりだと思うのですが、特に括弧の入れ子をどう処理するかで困っています。
使用言語はRubyです。よろしくお願いします。
0379デフォルトの名無しさん
2008/01/17(木) 19:22:45上限をハードコードするなら可能ではあるが、普通にパーサを書いたほうがいいと思う。
0380デフォルトの名無しさん
2008/01/17(木) 21:31:480381デフォルトの名無しさん
2008/01/18(金) 13:21:50新しい Perl でも、正規表現 *だけ* では無理じゃね?
0382デフォルトの名無しさん
2008/01/18(金) 19:34:46Javaとかもソースコードパーサー用の汎用クラスがあるけど、何故か使われなかったり。
BNF法の知識がデベロッパレベルで浸透してないから、無理も無いけど。
0383デフォルトの名無しさん
2008/01/24(木) 09:57:54テキストの中の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);
スマートに書く方法を教えてください。
0384デフォルトの名無しさん
2008/01/24(木) 10:34:25ageさして下さい
0385デフォルトの名無しさん
2008/01/24(木) 10:51:13[^h] じゃなくて h? じゃない?
0386デフォルトの名無しさん
2008/01/24(木) 11:20:57�dです
ご指摘のように
$pat2 = "h?(ttps?:\/\/[-_.!~*'()a-zA-Z0-9;/?:@&=+$,%#]+)";
$rep2 = "<a href=\"h\\1\" target=\"_blank\">\\1</a>";
$body = ereg_replace($pat2, $rep2 ,$body);
こうすることで動きました
ありがとうございました
0387デフォルトの名無しさん
2008/01/24(木) 14:34:410388デフォルトの名無しさん
2008/01/24(木) 14:46:580389388
2008/01/24(木) 14:51:28h? を省くと、 http: ってちゃんと書いたときに、こんなふうに h が出てきちゃう。
h<a href="http://hoge">ttp://hoge</a>
0390デフォルトの名無しさん
2008/01/24(木) 21:19:55内側のh?(~~をリンクに指定すればいいと思う。
0391デフォルトの名無しさん
2008/01/24(木) 21:49:52$test = preg_replace('{<[Aa] .+?>LINK([1-9][\\d\\-]*)</[Aa]>}' ,page_href('$1') ,$text);
上記の正規表現で得た29という数字をpage_hrefという関数に渡したいです。
29という数字は取れているみたいですが、関数内には29という数字が渡ってきておりません。
preg_replace内でどうすれば関数に数字を渡せますか?
ちなみにPHP5系です。
0392デフォルトの名無しさん
2008/01/24(木) 21:52:25すみませんでした
0393デフォルトの名無しさん
2008/01/24(木) 23:30:33kwsk
0394デフォルトの名無しさん
2008/01/24(木) 23:58:17$pat2 = "(h?(ttps?:\/\/[-_.!~*'()a-zA-Z0-9;/?:@&=+$,%#]+))";
$rep2 = "<a href=\"h\\2\" target=\"_blank\">\\1</a>";
$body = ereg_replace($pat2, $rep2 ,$body);
↑こういうことじゃね?
0395デフォルトの名無しさん
2008/01/25(金) 00:14:49そのくらいの正規表現ならPHP使いなら大抵知ってるからPHPスレでいいと思うよ
で、関数に引数を渡すにはその引数を評価してからじゃないと渡せない
というわけでまずは preg_replace() の引数である page_href('$1') を評価する
でもこの時点で preg_replace() は評価されてないので $1 は未定義
preg_match() を使って二つに分けて書くのが普通だろうけど
どうしても preg_replace() ひとつで済ませたい場合は e 修飾子を使ってこう書く
$test = '<a href="http://localhost/">LINK29</a>';
print preg_replace('{<[Aa] .+?>LINK([1-9][\\d\\-]*)</[Aa]>}e', 'page_href($1)', $test);
ただこういう謎コード書いて冷たい目で見られても知らない
0396デフォルトの名無しさん
2008/01/27(日) 10:16:29BREGEXPでなくても他に使いやすいライブラリがあれば教えてください。
0397デフォルトの名無しさん
2008/01/27(日) 11:14:060398デフォルトの名無しさん
2008/01/27(日) 12:52:37元々Cだしなぁ。ラッパーに何を期待してる?
それはそれとして、素のBREGEXPは古いのでやめておいた方がいい。
いくつかバグも見つかっているようだし。せめてbregonigにすべきかと。
0399デフォルトの名無しさん
2008/01/27(日) 12:55:52if(ReMatch(re, s)) { printf("%s", re->d1); }
ReFree(re);
これくらい簡単なのは確かに欲しい。
0400デフォルトの名無しさん
2008/01/27(日) 18:22:16if (/([0-9]+)/ == str) ...
こうできるけどね。
クラス定義とかしなくていいからさぁ、
C++のランタイムにしてくればモジュール提供する側がラクなんだよなぁ
0401デフォルトの名無しさん
2008/01/27(日) 19:22:380402デフォルトの名無しさん
2008/01/27(日) 19:37:070403デフォルトの名無しさん
2008/01/29(火) 14:08:08aa bb cc
aaa bbb ccc
これのインデントあわせって正規表現だけでできますか?perlです。
0404デフォルトの名無しさん
2008/01/29(火) 14:41:11<A HREF="http://hogehoge.jp/**************">http://hogehoge.jp/**************</A>
…以下続く
という文字列があるのですが、**************の部分に暗号化された文字(例:=7%be%8e%e4)が50文字くらい並んでいて
毎回文字数や形式が変動してしまいます。
<A HREF=" のほうはいいのですが、 HTML上に表示される文字のほうも暗号文字になってしまうので困っています。
正規表現で、HTML上に表示される文字のほうだけ、「リンク」という文字に変える方法はありますでしょうか?
0405デフォルトの名無しさん
2008/01/29(火) 15:32:43右寄せ?左寄せ?
まあ無理なんじゃない
>>404
pack形式と実行環境書け
0407デフォルトの名無しさん
2008/01/29(火) 15:55:11実はプログラミングを知らないので、実行環境はテキストです…
秀丸でできればおkです…
0408デフォルトの名無しさん
2008/01/29(火) 19:56:06正規表現では無理だろう。
幅固定なら awk が楽だが、
最長のに合わせるんだったら perl で普通に
ガシガシ書いてきゃいいんじゃね?
0409デフォルトの名無しさん
2008/01/30(水) 00:44:52$txt の中の
href="URL" の中のURLを
http:example.net/test.cgi?url=エンコードしたURL
の形に一括変換したいです。
たとえば
href="http://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;
0410デフォルトの名無しさん
2008/01/30(水) 01:18:38my $txt = <<TXT;
href="http://search.com/str.cgi?first=1&p=%BA%C7%B9%E2"
href="http://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;
0411デフォルトの名無しさん
2008/01/30(水) 01:26:23THANKS
なんか、できそうですが、PERL事態初心者で構文自体は理解できませんorz
0412デフォルトの名無しさん
2008/01/30(水) 11:34:55^.(?<!echo)*$ ではできませんでした。
0413デフォルトの名無しさん
2008/01/30(水) 11:45:01すいません。できました。
下の2つともできたのですが、「.」のおく位置で何か違いはあるのでしょうか?
^(.(?!echo))*$
^((?!echo).)*$
0414デフォルトの名無しさん
2008/01/30(水) 13:56:440415デフォルトの名無しさん
2008/01/31(木) 01:40:06これでだめなら ^(?!.*echo).*でもいい
>>413
1つ目はダメ。たとえば次のような行:
echo
このeを.で評価したとき、継続の文字はcho。
echoという文字が続いているわけじゃないから、マッチは成功してしまう。
2つ目はうまくいくだろう。
0416デフォルトの名無しさん
2008/02/01(金) 00:31:08// テスト文字列、"/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が空になります。これはどのように記述したらいいのでしょうか?
0417デフォルトの名無しさん
2008/02/01(金) 00:51:28$x=$location.split('/');
$location='/'+$x[1]+'/'+$x[3]+'/'+$x[5]+'/'+$x[6]+'/'+$x[8];
0418デフォルトの名無しさん
2008/02/01(金) 01:15:56$location = ereg_replace("/[^/]+?/\.\./","/",$location); /* "/___/../" -> "/" */
0419416
2008/02/01(金) 02:04:34そっちで聞いてみたいと思います。
どうもありがとうございました。
0420デフォルトの名無しさん
2008/02/01(金) 13:56:31よって下記とは異なる、でよろしいでしょうか。
(?!xx).*
0421デフォルトの名無しさん
2008/02/06(水) 19:08:060422デフォルトの名無しさん
2008/02/06(水) 19:56:32ttp://home.1555.info/misakura.html
とりあえず上のJavaScriptの意味を調べてみては
その過程で正規表現より他に必要なものが見つかるはず
0423デフォルトの名無しさん
2008/02/07(木) 09:29:340424デフォルトの名無しさん
2008/02/07(木) 21:45:00深川《ふか がわ》
↑のような《》に挟まれた半角スペース、全角スペースを指定する正規表現はどう書けばいいか教えて下さい。よろしくお願いします。
0425デフォルトの名無しさん
2008/02/08(金) 03:36:32>>1
0426デフォルトの名無しさん
2008/02/08(金) 17:50:02****age p * kk **
*aaaa
のようなものの*を行頭から連続している部分だけ-に換えたいんですが
--------aaa aa *
----age p * kk **
-aaaa
こういうような二重絞り込みみたいなものってperlのワンライナーでやる方法が知りたいです
perl -pe '/^[\*]*/ & tr/*/-/'
みたいな感じで条件を合成できそうな気がするんですが
0427デフォルトの名無しさん
2008/02/08(金) 18:02:310428デフォルトの名無しさん
2008/02/08(金) 18:46:33正規表現だけじゃできないんですね
perlも勉強することにします
0429424
2008/02/08(金) 19:34:160430デフォルトの名無しさん
2008/02/08(金) 19:58:150431デフォルトの名無しさん
2008/02/08(金) 20:10:240432デフォルトの名無しさん
2008/02/08(金) 20:27:02↑だと《》も一緒に指定してしまうし、だめだ。
0433デフォルトの名無しさん
2008/02/09(土) 01:36:18\f《[^《]*\f \f[^》]*》\f
置換するなら"\1置換後文字\3"とかで指定すればいいんだし。
0434デフォルトの名無しさん
2008/02/12(火) 01:09:08$a = "aiueo";
$b = "aiu";
と、あるときに
変数$bの中身(aiu)が$aに含まれるかを調べたいんですがどうしたらいいでしょうか。
0435デフォルトの名無しさん
2008/02/12(火) 01:17:220436434
2008/02/12(火) 11:16:40正規表現使う必要ないんですね。
ありがとうございます。
0437デフォルトの名無しさん
2008/02/13(水) 00:28:110438デフォルトの名無しさん
2008/02/13(水) 15:18:34htmlファイル中の
<p>
test
あああ
いいい
ううう
</p>
を preg_match('/<p>((.|\n)+)<\/p>/', $source, $test); でマッチさせると
$test[0]には全体、[1]には一致した部分が入っていて正しいのですが
[2]に空白も入ってしまっているようです。
Array
(
[0] => <p>
test
あああ
いいい
ううう
</p>
[1] =>
test
あああ
いいい
ううう
[2] =>
)
このようになります。
上手く間にある文字列だけをマッチさせる方法はないでしょうか。
0439デフォルトの名無しさん
2008/02/13(水) 15:26:34二個目のカッコ (.|\n) にマッチした箇所がキャプチャされてるね。
後方参照されないように (?:.|\n) とか。 ?: の意味は自分で調べて。
0440デフォルトの名無しさん
2008/02/13(水) 15:34:540441デフォルトの名無しさん
2008/02/15(金) 18:54:31192.168.1.* を東京
172.16.0.* 〜 172.16.3.* を大阪
という場合はどのように判定させればいいのでしょうか。
Perl歴3日目なもんで・・・どなたかお力を。
0442デフォルトの名無しさん
2008/02/15(金) 19:00:38split /\./ してからごにょごにょするか、
CPANのNetAddr::IPのようなモジュールが使えないか検討してください。
0443デフォルトの名無しさん
2008/02/15(金) 19:04:12方向性が分かっただけでも助かりました。
ありがとうございました。
0444デフォルトの名無しさん
2008/02/15(金) 20:05:500445デフォルトの名無しさん
2008/02/15(金) 22:54:300446デフォルトの名無しさん
2008/02/16(土) 13:40:360447デフォルトの名無しさん
2008/02/19(火) 10:54:06特定のワードで始まる行末7文字の指定はどう書けばいいでしょうか?
それとDOSのワイルドカードだと
AA○○.txt
AA××.txt
とあったときren AA*.txt BB*.txtとすれば
BB○○.txt
BB××.txt
となったと思うのですが、正規表現でも同様な事ができますか?
こちらもテキストエディタでの検索・置換です
0448デフォルトの名無しさん
2008/02/19(火) 15:07:30ttp://www.rider-n.sakura.ne.jp/regexp/regexp.php
0449デフォルトの名無しさん
2008/02/19(火) 17:34:36これの意味がわからない、例を出せ例を
0450デフォルトの名無しさん
2008/02/19(火) 17:36:10具体的なソフト名を出した方が回答が得られやすいと思われ。
0451デフォルトの名無しさん
2008/02/19(火) 17:48:38エディタの使い方とか正規表現とか覚える前に
人間として最低限必要な事を先に覚えたほうがいいんじゃない?
0452447
2008/02/19(火) 17:55:55わかる人だけが、質問に答えてくれればいいです
では引き続きよろしくお願いします
0453デフォルトの名無しさん
2008/02/19(火) 18:07:230454デフォルトの名無しさん
2008/02/19(火) 18:37:56米1合を洗ってダイソーで買った105円の土鍋に入れる。
そのままサンマの缶詰1缶まるごとブチ込む。
水加減は、缶詰の水分と合わせて200mlくらいになるように調節。
30分くらい浸して火にかける。
最初は中火より強め。5分くらいで吹いてくるから弱火にして、さらに5分。
(赤子泣いてもフタ取るんじゃないぞ)
炊き上がったら5分むらす。
缶詰はサンマでなくても、鯖とかイカとか赤貝とか、好みのでOK。
味が濃い目の缶詰がいいな。味が薄いときは醤油や砂糖やみりんを加えてから
炊くといいよ。
0455447
2008/02/19(火) 18:40:47例)
あああ〜〜〜1234567
いいい〜〜〜1234567
………
………
〜〜〜は文字数などもバラバラな任意な文字列(全角含む)
行頭『あああ』で始まる行の、行末『1234567』を
別の文字列『abcd』等に置換したいのです
0456デフォルトの名無しさん
2008/02/19(火) 18:43:410457デフォルトの名無しさん
2008/02/19(火) 20:02:100458447
2008/02/19(火) 21:51:39おいおい気がついたらとんでもない事勝手に書いてるな〜(苦笑
>>457
ありがとうございます
戻り読みと先読みですか、なるほど!
ですが、これだと『〜〜〜』の部分になってしまいますよね……
0459デフォルトの名無しさん
2008/02/19(火) 23:38:16今度ダイソーに行ったら見てみよう
0460デフォルトの名無しさん
2008/02/19(火) 23:44:48中国製の土鍋なんてどんな毒が混ざってるか分からんぞ。
0461デフォルトの名無しさん
2008/02/20(水) 00:38:190462デフォルトの名無しさん
2008/02/20(水) 08:47:18こういうことすぐ言う人って、昔いじめられてた人なんでしょ?可哀想にね
0463デフォルトの名無しさん
2008/02/20(水) 11:24:13/^(あああ.*?)(.{7})$/\1abcd/
0464447
2008/02/21(木) 18:24:17ありがとうございます
いろいろ調べながらやってますがダメなようです
もうちょっとがんばってみます
0465デフォルトの名無しさん
2008/02/21(木) 18:30:350466デフォルトの名無しさん
2008/02/22(金) 00:06:24いまラッパーつくってるよ
ちょっとまてて
0467デフォルトの名無しさん
2008/02/22(金) 13:22:33「詳説 正規表現 第3版」 (Jeffrey E.F. Friedl 著 / 長尾高弘 訳)
ISBN 978-4-87311-359-3 定価 5,040円
0468デフォルトの名無しさん
2008/02/22(金) 16:48:39もったいない気もするがロングテールの人なら鉄板か
0469466
2008/02/22(金) 21:49:08http://fx10.web.fc2.com/index.html
0470デフォルトの名無しさん
2008/02/23(土) 03:35:41原書では追加はPHP関連とかがあったけど、以前のものからの改訂部分って
ほとんどなかったんだよね。
訳しなおしてるのかなあ?
0471デフォルトの名無しさん
2008/02/23(土) 20:12:38<img src="new.gif" alt="New" width="10">
を正規表現で置換してaltの値だけを表示にすることは出来ませんでしょうか
よろしくお願いします
0472デフォルトの名無しさん
2008/02/23(土) 20:21:04\1
でできたよ
0473デフォルトの名無しさん
2008/03/05(水) 20:28:49(含む行) ^.*文字列A.*\n
(含まれない行) ^((?!文字列B).)*\n
で個別にはわかるんですがこの2つを合わせてて検索したいのですがどう書けばいいのでしょうか?
0474デフォルトの名無しさん
2008/03/05(水) 23:21:550475デフォルトの名無しさん
2008/03/05(水) 23:22:430476デフォルトの名無しさん
2008/03/06(木) 01:07:25| ^
dll
0477デフォルトの名無しさん
2008/03/07(金) 08:06:300478デフォルトの名無しさん
2008/03/07(金) 08:12:320479デフォルトの名無しさん
2008/03/07(金) 08:35:28’)
(6
0480デフォルトの名無しさん
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です。宜しくお願いします。
0481デフォルトの名無しさん
2008/03/07(金) 17:04:54// ̄ ̄`|
/|断 だ |
/ |る が |
/イ \___|
/ |// /| |
/_\ /_/_レ|
∧o>/ イ≡三\|
/ミ// r-<彡/|
/ /彡 ヾ\_O> |
/iハ-イ)  ̄ヽ彡|
`/ i∧二 // |
/ (`ーv\ // /|
`<j`ーヾ_ゝ // (r|
`< ノ /リ|
`< //7|
`</ / |
`<|
0482デフォルトの名無しさん
2008/03/07(金) 18:16:020483デフォルトの名無しさん
2008/03/07(金) 20:32:03s/\.?0+$//
0484デフォルトの名無しさん
2008/03/08(土) 10:40:12使用する文字が半角全角交じりで途中に記号やスペースもあるかもなのです
文字数もわかりません
2つのキーワードで全部取れますか?
キーワード�@東京都
キーワード�A3-5-7
何区何町だったか思い出せません><
何故か357って数字だけ覚えてました^^
0485デフォルトの名無しさん
2008/03/08(土) 10:59:33とかなってたら終わりだな
0486デフォルトの名無しさん
2008/03/08(土) 11:44:110487デフォルトの名無しさん
2008/03/08(土) 12:23:42で抽出してあとは手動かなぁ、俺がやるなら
漢数字が入る地名とかいちいちはじいてられないし
0488デフォルトの名無しさん
2008/03/08(土) 14:42:330489デフォルトの名無しさん
2008/03/08(土) 17:32:380490デフォルトの名無しさん
2008/03/09(日) 01:17:00みたいにアンカー機能を付けたいのですがどのように書けば良いのでしょうか?
0491デフォルトの名無しさん
2008/03/10(月) 10:41:21>>1 を見てその質問の仕方なのかよ!?
0492デフォルトの名無しさん
2008/03/10(月) 21:13:30↓
value
と置換する正規表現を教えて下さい
言語は JavaScript で、戻り読みは使えません
0493デフォルトの名無しさん
2008/03/10(月) 21:23:42<[^/]+>([^<]+)</.+>
0494デフォルトの名無しさん
2008/03/11(火) 02:03:14サンプルがJavaで吹いた
0495デフォルトの名無しさん
2008/03/11(火) 06:12:35ブラウザのJavaScriptならXPathのほうが速くて正確
0496デフォルトの名無しさん
2008/03/11(火) 06:39:06ブラウザじゃないです
取得したページからタグを削除することを目的としています
0497デフォルトの名無しさん
2008/03/11(火) 06:41:25493の正規表現でいいんじゃね?
0498デフォルトの名無しさん
2008/03/11(火) 08:57:13何か気持ち悪い。
0499デフォルトの名無しさん
2008/03/12(水) 01:26:270500デフォルトの名無しさん
2008/03/12(水) 01:36:32ASCIIのコード表でも見てみればいいんじゃないかな
0501デフォルトの名無しさん
2008/03/12(水) 06:02:36見てみたけどピリオドのほうがzより後に来てるのでこれおかしいんじゃないのと思って質問したのですが・・・
0502デフォルトの名無しさん
2008/03/12(水) 06:04:100503499
2008/03/12(水) 06:07:45もう一回調べてみたらピリオドのほうが先に来てる・・・
0504デフォルトの名無しさん
2008/03/12(水) 22:09:17あー、すまん、書き間違えてたので修正しといた。
0505デフォルトの名無しさん
2008/03/12(水) 22:16:00そういう ASCII コード表の順に大きく依存するような範囲指定を書くのは良くないと思う。
バグってハマったときに ASCII コードを凝視しないと解決いけなくなるし、移植性も低くなる。
アルファベットと記号は分けて書くようにするとか、文字クラスなどを利用した方が良い。
0506デフォルトの名無しさん
2008/03/12(水) 23:26:03言うことは非常によくわかる。
文字クラスを使うべきっていうのには完全に同意。
でもASCIIコード順は移植性十分にある気がする。
とりあえず俺はASCIIコードで範囲指定するのは問題ないと思う。
0507デフォルトの名無しさん
2008/03/12(水) 23:49:22OSの事情とかLOCALEまわりのランタイムの完成度とか
POSIX文字クラスは警戒心をくすぐるものだw
0508デフォルトの名無しさん
2008/03/13(木) 02:07:43はじめましてよろしくです^^
キーワード�@とキーワード�Aを同時にグレッペ出来る機能のあるツールはありますか
1000ファイル単位で処理したいんですが
1ファイルに�@�A�A(�Aは同じものが連続である)
これを行ごとgrepしたいんです
�Aについては1つ削除がいいです
よろしくお願い致します
キーワード�@東京都 キーワード�A性別�A(性別マーク)
0509デフォルトの名無しさん
2008/03/13(木) 02:25:180510デフォルトの名無しさん
2008/03/13(木) 03:23:270511デフォルトの名無しさん
2008/03/13(木) 03:30:340512デフォルトの名無しさん
2008/03/13(木) 07:22:300513デフォルトの名無しさん
2008/03/13(木) 07:40:300514デフォルトの名無しさん
2008/03/13(木) 08:09:400515デフォルトの名無しさん
2008/03/13(木) 09:04:250516デフォルトの名無しさん
2008/03/13(木) 09:11:02都道府県名
性別
性別を表す何らかのマーク
の順番で並んでいて、
2つめと3つめは同じ性別を意味する別表現である。
例えば2つめが「男」だったら、3つめは「♂」となる。
これをgrepしたいが、性別については一つ消したい。
こんな感じか?
grepだけじゃ無理だからsedかawk使え、でおk?
0517デフォルトの名無しさん
2008/03/13(木) 09:48:330518デフォルトの名無しさん
2008/03/13(木) 12:54:59こはキ11こ�Aよキ
ここで、前半部分の"こはキ11こ"というのは、
個数は11個じゃないよ、というのを表している。
個は、!=11個、というわけだな。
後半部分の"�Aよキ"というのは、
2個でもねーよ、というのを表している。
(2個 !=)という逆ポーランド記法を使っているようだ。
つまり、個数は11個でも2個でもないということだったんだよ!!!
Ω ΩΩ<な、なんだってー!!!
0519デフォルトの名無しさん
2008/03/13(木) 16:15:05if ($FORM{'text'} =~/>>$d/)
こんな感じでアンカーを抜き出すのは合ってるのでしょうか?
そのあと$DATA[$d]てきなのを取り出すにはどうしたらいいのでしょうか?
0520デフォルトの名無しさん
2008/03/13(木) 16:26:58ハェ?誰に聞いたんだ?言った奴に質問してこい
0521デフォルトの名無しさん
2008/03/13(木) 20:34:26思いついたやつを貼ってみる
こんなんだっけ?perlうろ覚えだわ
0522デフォルトの名無しさん
2008/03/13(木) 21:25:39うまくリンクされません。。
$FORM{'text'} =~ s/>>(\d{1,4})/<a href='#$1'>>>$1<\/a>/ixms
↑これは桁数が1〜4ならマッチということですよね
リンクされないのはなぜでしょうか?
0523デフォルトの名無しさん
2008/03/13(木) 21:30:52自己解決しました
$val =~ s/</</g;
$val =~ s/>/>/g;
これでタグを無効にしていました
それで>>521さんの通りにやるとアンカー自体はマッチします
この後それを取り出すのはどのようにすればいいのでしょうか?
ログからデータを取得するのはわかりますが、実際にその取り出された部分だけを抽出して表示するやり方がいまいちわかりません
0524デフォルトの名無しさん
2008/03/13(木) 21:35:500525デフォルトの名無しさん
2008/03/13(木) 21:58:16やったな、おい!大漁じゃねーか!
0526デフォルトの名無しさん
2008/03/14(金) 07:20:33本人乙とでも言ってほしいのか?
0527デフォルトの名無しさん
2008/03/14(金) 18:46:060528デフォルトの名無しさん
2008/03/14(金) 21:06:23「楽.*ね」ってやると、.*は可能な限りマッチするから
「楽しいかもね、そうかもね」まで拾っちゃうでしょ?
それを「楽しいかもね」でマッチさせたい場合どうすればいいですか?
0529デフォルトの名無しさん
2008/03/14(金) 21:08:420530デフォルトの名無しさん
2008/03/14(金) 21:08:49まずは>>1を音読したまえ
0531デフォルトの名無しさん
2008/03/14(金) 21:09:350532デフォルトの名無しさん
2008/03/14(金) 21:12:110533デフォルトの名無しさん
2008/03/15(土) 00:19:58真ん中あたりの15文字くらいがわかんなくなりました
正規表現でなんとかなりませんか?
0534デフォルトの名無しさん
2008/03/15(土) 00:27:420535デフォルトの名無しさん
2008/03/15(土) 10:57:56楽[^、]*ね
0536デフォルトの名無しさん
2008/03/15(土) 11:05:59それが許されるなら
楽しいね
だって許されるはずだ
0537デフォルトの名無しさん
2008/03/15(土) 11:47:450538デフォルトの名無しさん
2008/03/15(土) 11:48:140539デフォルトの名無しさん
2008/03/15(土) 14:28:52だったら
楽[^ね]*ね
でもいい様な。
0540デフォルトの名無しさん
2008/03/15(土) 18:53:110541デフォルトの名無しさん
2008/03/15(土) 22:03:460542デフォルトの名無しさん
2008/03/16(日) 00:57:08「ね.*$」ってやると
「ね、そうかもねABC」まで拾っちゃうでしょ?
それを最後の「ねABC」でマッチさせたい場合どうすればいいですか?
0543デフォルトの名無しさん
2008/03/16(日) 00:59:000544デフォルトの名無しさん
2008/03/16(日) 01:02:19マジで?できないけど??
0545デフォルトの名無しさん
2008/03/16(日) 01:04:580546デフォルトの名無しさん
2008/03/16(日) 01:08:49最短一致に対応してないタイプの正規表現なのかな。
0547デフォルトの名無しさん
2008/03/16(日) 01:16:55その目的には、最短一致は使えないから。
照合開始位置を後ろにずらしてまで最短を見つけるわけではない。
0548デフォルトの名無しさん
2008/03/16(日) 01:21:200549デフォルトの名無しさん
2008/03/16(日) 01:34:220550デフォルトの名無しさん
2008/03/16(日) 01:35:490551デフォルトの名無しさん
2008/03/16(日) 01:50:550552デフォルトの名無しさん
2008/03/16(日) 02:24:31THX!ひとまずそれで省いた後
ね$をマッチさせることにするよ
0553492
2008/03/16(日) 03:14:370554デフォルトの名無しさん
2008/03/16(日) 03:24:120555デフォルトの名無しさん
2008/03/16(日) 06:10:582008年3月16日 06:09:42
↓
2008-03-16 06:09:42
のように年月を-で、日を削除するように置換するにはどうしたらいですかね?
0556デフォルトの名無しさん
2008/03/16(日) 06:25:49:%s/月/-/
:%s/日//
じゃあかんのんか?
というか、3 を 03 に変える所までやりたいの?
0557デフォルトの名無しさん
2008/03/16(日) 06:31:06説明不足ですみません、対象のテキストには日付以外にもいろいろ書かれていて、
年や月などの単語はそのままに日付部分だけ置換したいのです。
日付の正規表現が理解できていないので、こちらでお尋ねした次第です。
>というか、3 を 03 に変える所までやりたいの?
可能ならしたいです。
0558デフォルトの名無しさん
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))/
0559デフォルトの名無しさん
2008/03/16(日) 07:09:55テスト用に1行のみの置換にしてた。
:.s は :%s に変えてね。
まあ分かると思うけど。
0560デフォルトの名無しさん
2008/03/16(日) 07:45:51やってみたのですが、うまくいかず、日付の部分が丸ごと消えてしまうようです。
'printf' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
と出ました。こちらのVimの設定が悪いのでしょうか?もう少し試してまたレス返しにきます。
0561>>555=>>557
2008/03/16(日) 08:05:26一応こちらの手順ですが、スレに貼って頂いたものをクリップボードに入れてから、
:<C-R>*
で貼り付けして、先頭を :%s/ に変えてテキスト全体に適用してから、実行しました。ほぼコピペなので打ち間違いはないと思うのですが。
Vim7 を Windows 2000 sp4 で使ってます。
printf などもわからないため、もう少し調べてみます。
0562デフォルトの名無しさん
2008/03/16(日) 10:10:00ViVi でだけど以下でいけた
:s/(\d{4})年(\d{1,2})月(\d{1,2})日 (\d{2}):(\d{2}):(\d{2})/\1-\2-\3 \4:\5:\6
Vim でも同じように出来るんじゃないか?
0563デフォルトの名無しさん
2008/03/16(日) 11:45:32マッチはうまくいってるみたいですが、置換の仕方がVimとだいぶ違うようです。
ViViはいじったことないので、少し調べてみます、スペース入れる辺りがよくわかりませんので。
わざわざありがとうございました。皆さん、お手数おかけしております。
0564デフォルトの名無しさん
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桁のままですが、それ以外は置換できました。もう少し試行錯誤してみます。
0565デフォルトの名無しさん
2008/03/16(日) 12:29:58: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
0566デフォルトの名無しさん
2008/03/16(日) 16:54:21>>558 は printf コマンドがあることを前提にしてるから
Windows のコマンドプロンプトだと無理なんだろう。
Cygwin でやればいけるはず。
0567デフォルトの名無しさん
2008/03/16(日) 17:51:53いろいろVimで粘ったのですが自分のスキルでは無理だったので。
ありがとうございました。
>>566さん、ご教示ありがとうございます。
Cygwinはよくわからないのと、>>565さんの方法で出来たので printfコマンドはあきらめました。
>>555の質問の件は>>565さんので解決することができました。
皆さん、いろいろ教えていただきありがとうございました。お世話になりました。
0568デフォルトの名無しさん
2008/03/16(日) 19:50:39全米が泣いた
0569デフォルトの名無しさん
2008/03/18(火) 14:41:31あああああああ
aaaaaaaaa
??????????
乙乙乙乙乙乙乙乙乙乙乙乙
こういうある文字の繰り返しを、一つの表現でマッチできますか?たとえば10文字以上
専ブラで弾きたいんですが、数字はのぞけると嬉しいです
0570デフォルトの名無しさん
2008/03/18(火) 14:44:540571デフォルトの名無しさん
2008/03/18(火) 14:45:260572デフォルトの名無しさん
2008/03/18(火) 16:39:30探したい文字の前につけるんですよね?
< を探すのに
.< として検索したら結果は
>< として検索されます
検索結果に > を含めない方法教えて下さい
0573デフォルトの名無しさん
2008/03/18(火) 17:00:47新しい解釈だな
0574デフォルトの名無しさん
2008/03/18(火) 19:07:48「>」でない任意の1文字 + 「<」
と一致させたいってことなら [^>]<
検索結果から>だけ取り出したいってなら.(>)
後者に何の意味があるのかは知らないけど
ただ少なくとも正規表現について基礎から勉強しなおしたほうがよさそうだな
0575デフォルトの名無しさん
2008/03/18(火) 19:15:140576デフォルトの名無しさん
2008/03/18(火) 19:38:210577デフォルトの名無しさん
2008/03/18(火) 20:04:030578デフォルトの名無しさん
2008/03/18(火) 20:12:360579デフォルトの名無しさん
2008/03/19(水) 02:36:39あれからダブルグレッペというマクロをつかわせていたらきましたよw
一応テストしてから本格的に使わせていただこうと
HDDの奥深くにテスト用のテキスト置いて、 grep開始!
ほへ?
グアッガッガーッ!!うわぁぁああああ!!!
この音は何??
なんだろか!?
ハードディスクが唸りまくってるタラリーン
よくわからないけどドライブごとgrepしてくれたよ
1ファイルで5000行〜1万行が40万ファイルあるのに・・・(ポカーン
コントロール+オルト+デリートでストップかけたら
エディター画面の後ろ側にエラー画面がいくつもでてたww
今時ブラクラ??
驚いたというかワラタwww
0580デフォルトの名無しさん
2008/03/19(水) 15:44:41以下のような広告を含む<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='http://ads.xxx.com/xxx/afr.php?n=a5c37d59&zoneid=2&cb=<?=41Q40eQDW2vfp6o;?>' framespacing='0' frameborder='no' scrolling='no' width='300' height='250'>
<a href='http://ads.xxx.com/xxxxxx/ck.php?n=adf3ef1c&cb=<?=41Q40eQDW2vfp6o;?>' target='_blank'>
<img src='http://ads.xxx.com/xxx/avw.php?zoneid=2&cb=<?=41Q40eQDW2vfp6o;?>&n=adf3ef1c' border='0' alt='' /></a>
</iframe>
<script type='text/javascript' src='http://ads.xxx.com/xxx/ag.php'></script></td></tr><tr bgcolor=#EEEEEE><td height=5px></td>
</tr>
</table>
一部伏字にして置換してあるので100%同じ文字列ではありません。
これをマッチさせて丸ごと削除したいのです。
<table.*>.*</table>
これだとページ自体が全体的に崩れてしまいます。
tableの開始と終了を合わせないといけないのですが
そこがネックになっています。
0581デフォルトの名無しさん
2008/03/19(水) 16:43:48正規表現スレだからこんな書き方をするとスレ違いかも知れないけど、
$NEST(<table,[^>]++class=$AV(tbl)[^>]+>*,</table>)
「*」の所を、「*消したい文字を入れる*」とか、すればいいんじゃないかな。
0582デフォルトの名無しさん
2008/03/23(日) 02:57:04aa1234ファイル
[0-9]
$[\.(txt)]
だめですか?
0583デフォルトの名無しさん
2008/03/23(日) 03:02:31>>1
0584デフォルトの名無しさん
2008/03/23(日) 03:12:15s/^\([^.]+\)$/\1.txt/
+ が使えないなら
s/^\([^.][^.]*\)$/\1.txt/
0585デフォルトの名無しさん
2008/03/23(日) 04:16:02了解
>>584
ありがとうございます
0586デフォルトの名無しさん
2008/03/23(日) 12:58:56元の文字列
(10123)test.txt
希望する変換後の文字列
10123test.txt
使ってみたいツールはこれです
ベクター Flexible Renamer
ttp://hp.vector.co.jp/authors/VA014830/FlexRena/
このスレの>>1関連サイトを廻ってみたけどよくわかりませんでした
ツールの作者HPもいって見ましたがQ&Aとか掲示板はなかったです
どなたか括弧の取り除き方教えて下さいお願いします
0587デフォルトの名無しさん
2008/03/23(日) 14:28:15) 削除
0588デフォルトの名無しさん
2008/03/24(月) 17:03:04<h2>タイトル</2>
「<」から「>」までお願いします(「タイトル」の文字列含む)
どなたかよろしくお願いします
0589デフォルトの名無しさん
2008/03/24(月) 17:06:500590デフォルトの名無しさん
2008/03/24(月) 17:15:46書き込んでから>>1読みました
今のところ使うソフトは秀丸エディターを試用しようしてみよう思いますが
ツールは何も揃えていない状態なので解答者サンのお勧めのソフトで始めてみます
正規表現でテキストの加工をしたいです
初心者でも挫折しないで継続して使っていけるソフトも一緒に探してます
金額にもよりますがフリー有料問いません
使うソフトはまだ明確には決めていませんので取り合えずシェアーウェアーで試してから
本格的にやってみようと思います
<h2>タイトル</h2>
よろしくお願いします
0591デフォルトの名無しさん
2008/03/24(月) 17:18:55こんなのは想定しなくていいのか。
0592デフォルトの名無しさん
2008/03/24(月) 17:26:26即レスありがとうございます
そういうのもあるかもしれないです
文字列の中に <strong>見出し</strong> が入っていれば検索文字列も変わりますよねorz
<h2>からエンドを</h2>にする方法教えて下さい
お願いします
0593デフォルトの名無しさん
2008/03/24(月) 17:27:330594デフォルトの名無しさん
2008/03/24(月) 17:53:20588です
途中に改行は想定していなかったです
あるかもわからないと今気づきました
お手数お掛けして恐縮ですが何卒よろしくお願い致します
0595デフォルトの名無しさん
2008/03/24(月) 23:10:250596デフォルトの名無しさん
2008/03/24(月) 23:37:54こんなのは想定しなくていいのか。
0597デフォルトの名無しさん
2008/03/24(月) 23:43:260598デフォルトの名無しさん
2008/03/24(月) 23:46:46\1
<h2> ([.\n]*) </2>
\1
とかでいいのでは?
0599デフォルトの名無しさん
2008/03/24(月) 23:47:39過去スレ読めばよかったorz
>>33まで読んだ
0600デフォルトの名無しさん
2008/03/24(月) 23:52:05このスレで勉強させてもらおうって人も尻込みするね
>>595の意図はそれなんだろうけど・・・
0601デフォルトの名無しさん
2008/03/24(月) 23:54:45潰しにかかれるうちに潰しちゃう
やな奴だ氏ねばいいよ
9図
0602デフォルトの名無しさん
2008/03/24(月) 23:58:48- - - こ こ へ 何 か 聞 き に 来 た 人 へ - - -
ま ず 過 去 ス レ 読 ん だ ほ う が い い
変 な 潰 し 屋 が い て る よ う な の で ご 注 意 下 さ い
0603デフォルトの名無しさん
2008/03/25(火) 00:18:28正規表現だと、〜〜を含む行を探すってのは簡単にできるんだけど
〜〜を含まない行を探すのはどうするのが一般的なのでしょうか?
エディタならば、「abcde」を含む行を
^((.*)abcde(.*))\r\n
で探して、削除することで処理できるのですが、
これはあくまで含む行を探してるのであって、
含まない行を探すというのとは違うような気がして釈然としません。
別に今困ってるわけじゃなくて、知っておきたいだけなのですけど・・・。
よろしくお願いします。
0604デフォルトの名無しさん
2008/03/25(火) 00:24:370605デフォルトの名無しさん
2008/03/25(火) 00:25:12言語理論での定義では、正規表現は「ある文字列を含まない文字列」はあらわせない。
しかしそれでは不便なので、パターンマッチ用に拡張された言語では否定を表現する方法を持っている場合はある。
0606デフォルトの名無しさん
2008/03/25(火) 02:48:25^(?!sage)(.(?!sage))*$
0607デフォルトの名無しさん
2008/03/25(火) 03:06:14^([^a]|a([^b]|b([^c]|c([^d]|d([^e]|$)|$)|$)|$)|$)*
0608デフォルトの名無しさん
2008/03/25(火) 08:13:09vi, vim, ViVi なら
:v/regexp/d
で正規表現に一致しない行を削除できる
0609デフォルトの名無しさん
2008/03/25(火) 12:28:43こんな記述も可能ではある。
結論: HTMLのパースに正規表現は向かない
0610デフォルトの名無しさん
2008/03/25(火) 13:40:431234567890 を 1234______ にリプレイスしたいのですが、
どうすればできるでしょうか?
0611デフォルトの名無しさん
2008/03/25(火) 13:44:440612デフォルトの名無しさん
2008/03/25(火) 13:45:350613デフォルトの名無しさん
2008/03/25(火) 13:55:11987654 なら 9876__
314159265358979 なら 3141____________
にしたいんです」
かな。
0614デフォルトの名無しさん
2008/03/25(火) 14:02:37自己レスですが、いろんなサイトを見よう見まねで + 気合で何とかできました。
"1234567890".replaceAll( "(^....|).+?(?=.+|$)" , "$1_")
0615デフォルトの名無しさん
2008/03/25(火) 20:25:13正規表現は規格で決まってるものではないんでしょうか?
言語ごとに違いってあるんでしょうか?(bashは言語じゃないってのもありますが・・・)
0616615
2008/03/25(火) 20:27:21↑は違いましたね・・・失礼しました。
0617デフォルトの名無しさん
2008/03/25(火) 20:28:54それ性器表現じゃないし
0618615
2008/03/25(火) 20:49:04bashのは正規表現とは言わないんですか、失礼しました。そう呼んでるサイトも見かけますが・・・
bashの*に対応するのは.*ですね。
bashスクリプトとperlスクリプトが混ざってると、ちょっと紛らわしいですね
0619デフォルトの名無しさん
2008/03/25(火) 22:05:100620デフォルトの名無しさん
2008/03/26(水) 01:49:440621デフォルトの名無しさん
2008/03/26(水) 03:33:070622デフォルトの名無しさん
2008/03/27(木) 13:47:15VBS (WSH Windows Scripting Host) のRegExp では
マルチラインの指定はできんですか?
ググって必死こいて探してるけど見つけられないんで。
0623デフォルトの名無しさん
2008/03/27(木) 14:56:06Set ObjRegExp = New RegExp
ObjRegExp.Multiline = True
0624デフォルトの名無しさん
2008/03/27(木) 22:10:38できました。アリガトです。
0625デフォルトの名無しさん
2008/03/29(土) 17:03:54という二つの単語がある場合で
上記2つにはマッチするが
たとえば「まる」という言葉にはマッチしないようにする
正規表現ってどうやればいいですか?
今は「ます」と「ただいま」の2語をマッチするようにしているのですが、
やり方が悪いのか「まる」という言葉でもマッチしてしまいます。
0626デフォルトの名無しさん
2008/03/29(土) 17:12:13具体的にはどうしているの?
0627デフォルトの名無しさん
2008/03/29(土) 17:15:05どう間違えると「まる」にマッチするのか知りたい。
0628625
2008/03/29(土) 18:03:22解決しました!ありがとうございます。
0629デフォルトの名無しさん
2008/03/29(土) 18:12:12マッチしてたのかという謎を解決して欲しいです。
0630デフォルトの名無しさん
2008/03/29(土) 18:43:26そんな書き方があるとは知らなかった
どの正規表現実装か教えてくれ
0631デフォルトの名無しさん
2008/03/29(土) 21:09:51/[\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に当たってるようです。
一番よく使ってるフィルタなので消したくないです。
このフィルタで"中"にはヒットしないような正規表現は可能ですか?
0632デフォルトの名無しさん
2008/03/29(土) 21:55:140633デフォルトの名無しさん
2008/03/30(日) 07:49:32マッチさせるようなのは正規表現でいけません?
開始終了を括弧としたら
"(((1 + 2) * 3) - 4) / 5"
の時
"(((1 + 2) * 3) - 4)"
ここまで取れない?
括弧見づらいからブレイスにするけど
/{([^{}]*|{[^{}]*})*}/
だと2段までしかとれないのは何故?
0634デフォルトの名無しさん
2008/03/30(日) 08:00:38こうすれば3段までマッチさせられるよ。
0635デフォルトの名無しさん
2008/03/30(日) 09:04:26(1+2)*3)-4 みたいな構文が来たら困るけど
0636デフォルトの名無しさん
2008/04/03(木) 12:27:53<aaa bbb ccc>
ddddddddddddd<aaa>
検索:<aaa.*?>(.+?)<aaa> で検索したけどマッチしません。どなたかよろしくお願いします
0637デフォルトの名無しさん
2008/04/03(木) 13:22:02.*? の部分かな。
<aaa[^>]*> でどうだろう。
0638デフォルトの名無しさん
2008/04/03(木) 14:20:12対象が複数行なんだよね?
$str = "<aaa bbb ccc>\nddddddddddddd<aaa>";
$str =~ s/<aaa.*?>(.+?)<aaa>/$1/s; # 後ろに s つける
print $str;
0639デフォルトの名無しさん
2008/04/03(木) 14:22:45(?s-:<aaa.*?>(.+?)<aaa>)
0640デフォルトの名無しさん
2008/04/03(木) 14:23:100641デフォルトの名無しさん
2008/04/03(木) 22:23:59上手くいかないです^^;
もうちょっとガムバッテみます
複数行になると難しいですね
続いた行はできそうな気がするんだけどできないorz
0642デフォルトの名無しさん
2008/04/03(木) 22:43:52if (@lines =~ /pattern/s) { # 先生、ここ通りません }
どっちか知らないけど。
0643デフォルトの名無しさん
2008/04/04(金) 20:06:53これにマッチあせて"11 11"を取得することはできますか?
「 *([^ ]*[.]*[^ ]*) *」
でやってみたのですがうまく取得できなくて・・・
スペースは全て全角です
お願いします
0644デフォルトの名無しさん
2008/04/04(金) 21:22:00途中の[.]*でぶっ飛んでる。つーか、. に [ ] つける意味がないよね。
0645デフォルトの名無しさん
2008/04/04(金) 21:30:34じゃあ教えてあげればいいのに文句書くだけなら解答者じゃない荒らしだ
どっか池
こんな感じか違うかw
".1+.*?"
0646デフォルトの名無しさん
2008/04/04(金) 21:35:40あと 11 と 11 は同じ文字?
それなら
+(([^ ]*) +\1) +
かな。全角を認識させたいなら・・・環境によるなぁ。
0647デフォルトの名無しさん
2008/04/04(金) 22:01:59文字列を3行続けて取得したいのですが教えて下さい
【郵便】100-0001
【住所】東京都○○区○○町1-2-3 もしくは 神奈川県○○市○○町1-2-3○○○○○○○○マンション3階303号室
【電話】03-3000-XXXX
1行目、3行目は行頭にそれぞれ【郵便】【電話】がありますが
2行目の住所部分はマンション名が長かったりすると【住所】はなくて行頭が東京都や神奈川県から始まる行もあります
3行連続で取得する方法教えて下さい
0648デフォルトの名無しさん
2008/04/04(金) 22:18:250649デフォルトの名無しさん
2008/04/04(金) 22:26:17http://pc11.2ch.net/test/read.cgi/php/1203935151/280 とか
http://pc11.2ch.net/test/read.cgi/php/1204488452/42 とか
>>636辺りに心当たりはないか。
0650デフォルトの名無しさん
2008/04/05(土) 00:02:46「○11○5656○」
○は全角スペースです
全角スペースに囲まれた文字列を取得したくて・・・
11とか5656は任意の文字で
間に全角スペースが入っているかもしれないんです
上の文字列だったら「11○5656」
って感じで
わかり難い書き方して申し訳ないです
0651デフォルトの名無しさん
2008/04/05(土) 00:10:43言語は?
0652デフォルトの名無しさん
2008/04/05(土) 00:19:51これで抽出できないかな?正規表現始めたばっかでよくわからないけど
0653デフォルトの名無しさん
2008/04/05(土) 00:20:47こうか、すまん
0654デフォルトの名無しさん
2008/04/05(土) 00:21:360655デフォルトの名無しさん
2008/04/05(土) 00:27:450656デフォルトの名無しさん
2008/04/05(土) 01:28:02言語と文字コードがないとあきまへんが、なんとかせーっちゅーなら、
(\xe3\x80\x80|\xa1\xa1|\x81@)(.*)(\xe3\x80\x80|\xa1\xa1|\x81@)
これでいけますわ。utf-8,shift_jis,euc-jpなんでもこいのすぐれものや。
0657デフォルトの名無しさん
2008/04/05(土) 01:59:540658デフォルトの名無しさん
2008/04/05(土) 02:59:24「○11○5656○」
これの1個目3個目の空白はマッチさせないんだよね
2個目の空白は実際にはあるかないかわからない
両隣は任意の文字
ん〜これピッタシあわせるのは今の情報だけでは難しいというより不可能じゃないでしょうか
任意の文字が半角だけの構成なら[0-9][a-z]簡単なんだけどなー
何か他にkeyに出来そうなのないですか?
それとここで解答者が自分の環境でよい結果が出てもあなたの環境ではマッチしないかもしれない
環境に合った正規表現の使い方をしないとマッチさせれない場合がありますよ
質問者も解答者も徒労に終わるので
あなたが正規表現をどのように使うのか記載したほうがいいよ
正規表現を扱おうとする言語もしくは正規表現を扱えるエディターで検索しようとしているのか
あなたを攻めてるわけではないので誤解しないようにね
0659デフォルトの名無しさん
2008/04/05(土) 03:16:49[^\x81@].*[^\x81@]
0660デフォルトの名無しさん
2008/04/05(土) 08:53:44ああ、そうか。そうだな。
0661650
2008/04/05(土) 12:28:26皆様レスありがとうございます
「○11○5656○」
○は全角スペース、何個あるかわからないし、ないかもしれません
「一三○四○○○」だったら「一三○四」
「○○○○八九4○○た」だったら「八九4○○た」
こんな感じで取得したいです
他の文字は任意です。全角の場合が多いですが
言語はJava、コードはUnicodeかな?
簡単に言うと両端の全角スペースをトリムしたいだけなのですが・・・
わかり難い表現ですみません
0662デフォルトの名無しさん
2008/04/05(土) 12:35:01という処理にしたほうが簡単だよ
非欲張りなのが使えればこうかな
/ *(.*?) *$/
0663デフォルトの名無しさん
2008/04/05(土) 12:50:550664デフォルトの名無しさん
2008/04/07(月) 03:05:232行に渡る文字列を検索でマッチさせたいです
<title(.+?)\n.*title>
秀丸(正規表現ON)ではマッチしていたのですがgawkではマッチしません
アドバイス頂けましたら幸いです
どうぞよろしくお願い致します
0665デフォルトの名無しさん
2008/04/07(月) 03:14:350666デフォルトの名無しさん
2008/04/07(月) 04:08:57mオプション
マルチラインですね
実はgawkのスクリピトを教えていただいたのです
とても気に入り今後末永く使わせていただこうと思うのですが
複数行の検索が秀丸と違うようなので戸惑っています
他にgawkのアドバイスありましたらよろしくお願いします
0667デフォルトの名無しさん
2008/04/07(月) 06:08:38相変わらず具体的じゃないのね。
665をやったがこういう風にうまくいかなかったとか
こうしたけどダメだったとかあれば、アドバイスのしようもありますが、
他にアドバイスと言われてもなかなか。
0668デフォルトの名無しさん
2008/04/07(月) 08:58:29ない物は仕方ない。
mオプションの正規表現を組み込んだawkを自前で作る?
perlとか、正規表現が拡張されてる処理系に移った方が、後々幸せ。
0669デフォルトの名無しさん
2008/04/07(月) 13:26:21エイチティティピー://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さん
レスありがとうです
0670デフォルトの名無しさん
2008/04/07(月) 13:57:34気付け。gawkじゃ無理。
FSはフィールドセパレータ。用途が全然違う。
0671デフォルトの名無しさん
2008/04/07(月) 14:00:36awkだけじゃなくて、基本的な知識が足りなすぎるよ。
0672デフォルトの名無しさん
2008/04/07(月) 14:04:12>>670さん
>>671さん
gawkは諦めた方がよいかもしれないですね
私じゃ無理だということはわかりました
アドバイスありがとうございました^^;
0673デフォルトの名無しさん
2008/04/07(月) 16:01:44キャプチャしたいんです</element>
このお題はまだ続くのかな。
> perl5.8です
> gawk3.16です
次は何だろ。
0674デフォルトの名無しさん
2008/04/08(火) 00:07:32残念でした
秀丸
perl
gawk
ですよw
秀丸でもう少しのところまでいけたんだけど
データが長すぎて最後のソートが出来なかったんだ
それでエクセルとかでやろうとしたんだけど
文字化けで遠回りした
正規表現扱えないんだってわかるのに1週間かかったw
んで改めてやってるんよ
データ形式をちょっと変えて保存するだけなんだけど
こんなに難しいとは思わなかった
秀丸スレの人たちとUWSCスレの人たちのお陰で
ここまでなんとか前進できた
いつも「もう少しだっ」って思っていたところへたどり着くまでに
思いもよらぬ壁が現れるんだ
この正規表現もそうだね
私は正規表現って生まれて始めて知ったんだ
またお願いしますね
オヤシミ^^
0675デフォルトの名無しさん
2008/04/08(火) 03:18:20Excelでも正規表現使えるよ。
CreateObject で正規表現オブジェクトを使えるようにすればね。
つか、Perlでできなかったてーのはなんでだ?
0676デフォルトの名無しさん
2008/04/08(火) 03:25:58perlで出来そうなんだけど私が作れないだけ^^;
オヤシミノシ
0677デフォルトの名無しさん
2008/04/08(火) 05:15:30正規表現使うならperlじゃなくてもいいが何かプログラミング言語もやっといたほうが自由度はあがると思うけどな。
perlは何するにしても過去の遺産のおかげで楽ができるから趣味でやる分にはお勧め。
0678デフォルトの名無しさん
2008/04/08(火) 14:44:33ウェブページをテキストで取り込んでデータベース可?
なんだかやりたいことの過程で部分部分でこのソフトでこうするのはどうしたらいいか
とういう質問でよく分からない。
で
紙copi/紙copi lite/Kamicopi/ネタの種 12
http://pc11.2ch.net/test/read.cgi/software/1201627570/
あたりのソフトを使えば良いんじゃないか?とか思っちゃうんですが、見当違いだったらごめんね。
0679デフォルトの名無しさん
2008/04/08(火) 18:46:44紙コピ持ってるよ
最初はスゲーとか思ってシェア払って正規ユーザーなったけど
加工で正規表現検索できないので役に立たない
ビジネスバージョンも抽選で当たったけど
もう使ってないよ
やりたいことは何十回も書いてるよ
ここで書くのもなんなんだけど
既存のファイルからタイトルとデータ1箇所を抽出して一覧表作りたいだけ
<ol>
<li><a href="ファイル名">タイトル</a></li>
<li>データ</li>
</li>予備項目(空欄)</li>
</ol>
この前ファイル名とタイトルの部分を作ってくれた方が居たんだけど
その下にデータ項目と予備項目を作らなければいけないことがわかって
もっかい頼んだら後でコロコロ変わるってことで断られた
それで自分でやってるわけ^^;
0680デフォルトの名無しさん
2008/04/08(火) 22:33:340681デフォルトの名無しさん
2008/04/08(火) 23:15:19「お金払って」ですね
0682デフォルトの名無しさん
2008/04/09(水) 11:27:480683デフォルトの名無しさん
2008/04/11(金) 01:20:210684デフォルトの名無しさん
2008/04/11(金) 10:39:52原書あるから要らんけど…
0685デフォルトの名無しさん
2008/04/11(金) 18:59:29「あかスまのた゚」「゙ナをフaき」のように、
規則性のない全角かな・カナ、半角かな・カナ(濁点半濁点含む)をマッチさせたいのですが
例えば上の例ですとどのようなパターンで記述すればいいでしょうか?
文字コードは何でも構いませんが、可能ならeuc-jpが良いです。
よろしくお願いします。
0686デフォルトの名無しさん
2008/04/11(金) 19:16:59それは排除しなくていいのか?
Ruby なら EUC にして 0x00 〜 0x7F を排除すればいいだけだと思うが、
規則性の有無のチェックが必要とかなると正規表現では難しいかと。
0687デフォルトの名無しさん
2008/04/11(金) 19:20:26本当に仮名のみにするのか。
仮名の範囲の端同士で [ヲ-゚ぁ-んァ-ミム-ヶ] みたいにすればいいと思うよ。
Ruby なら文字コード指定できるから、EUC でそうやればいい。
0688デフォルトの名無しさん
2008/04/11(金) 20:59:19文字化けしてる領域をまるっと抽出したいってことだと思うんだが
もしそうなら>>306みたいに先読み使えばどうにかなると思う
0689デフォルトの名無しさん
2008/04/12(土) 00:19:19第3版が出るようだけど,PHPイラネなら買うほどでもないのかな
0690デフォルトの名無しさん
2008/04/12(土) 01:42:470691デフォルトの名無しさん
2008/04/12(土) 02:36:340692デフォルトの名無しさん
2008/04/12(土) 05:25:330693デフォルトの名無しさん
2008/04/12(土) 08:45:46Pythonなら最初から生えてるのにね
0694デフォルトの名無しさん
2008/04/12(土) 10:20:330695デフォルトの名無しさん
2008/04/12(土) 19:18:060696デフォルトの名無しさん
2008/04/12(土) 22:01:150697デフォルトの名無しさん
2008/04/13(日) 14:15:30条件
・英字(大文字か小文字)と数字を必ず含む
・英字のみはマッチしない
・数字のみもマッチしない
^\w+$
はもちろん駄目で
^[a-zA-Z\d]+$
ももちろん駄目でした・・・
0698デフォルトの名無しさん
2008/04/13(日) 15:36:33(\w+(\d*\w*)*|\d+(\w*\d*)*)
_と-の扱いは?
0699デフォルトの名無しさん
2008/04/13(日) 17:01:14ああ、それもいるのか・・
0700デフォルトの名無しさん
2008/04/13(日) 17:07:310701デフォルトの名無しさん
2008/04/13(日) 17:26:350702デフォルトの名無しさん
2008/04/13(日) 21:26:46* をはずすと特に問題は無いのですが
0703デフォルトの名無しさん
2008/04/13(日) 21:33:31エラーメッセージでてるだろ。
そこに理由が書いてあるから読めよ。
0704デフォルトの名無しさん
2008/04/14(月) 07:33:27サンクス試してみる。
0705デフォルトの名無しさん
2008/04/14(月) 08:25:500706デフォルトの名無しさん
2008/04/14(月) 22:46:37どんなプログミング言語で書いてるのかわからんけど
if ($password =~ m/^[A-Za-z0-9_\-]+$/
&& $password =~ m/[0-9]/
&& $password =~ m/[A-Za-z]/) {
ほげほげ・・・
}
みたい書いたほうが、どんな言語にも応用がきくし
あとのメンテナンスも楽だしな。
どうしても無理やり1つにまとめなきゃいかん事情があるんなら別だが。
0707デフォルトの名無しさん
2008/04/16(水) 01:54:40正規表現を扱えるライブラリを探しています。
出来れば、charとwchar_tの両方に対応しているものが欲しいと思っています。
片方なら、boostでいいと思うのですが……
どなたか、ご存知の方教えてください。
0708デフォルトの名無しさん
2008/04/16(水) 07:19:25この文字列中の「__」を任意の数だけ半角スペースに置換するという場合
(1が指定されたなら1つ、2が指定されたなら2つというように)、どのような記述になるのでしょうか。
使用言語はPerlです。
oオプションを指定して評価を1度だけにし、ループで回す、という方法は考えたのですが、
可能なら正規表現のみで完結させたいです。
どなたかご存知でしたら教えていただけないでしょうか。
よろしくお願いします。
0709デフォルトの名無しさん
2008/04/16(水) 07:48:590710デフォルトの名無しさん
2008/04/16(水) 10:45:450711デフォルトの名無しさん
2008/04/16(水) 13:58:170712デフォルトの名無しさん
2008/04/16(水) 14:20:480713デフォルトの名無しさん
2008/04/16(水) 14:24:480714デフォルトの名無しさん
2008/04/17(木) 04:26:312ちゃん外のurlだとhttp://がhttp://ime.nu/に置換されます
urlが2ちゃん内か外かを判断するにはどうやっているのでしょうか。
urlかどうかを判断し、リンクを貼るところまではネットで調べて↓のようにできたのですが、続きがわかりません。
ereg_replace("(http)(://[[:alnum:]\S\$\+\?\.-=_%,:@!#~*/&]+)","<a href=\"\\1\\2\">\\1\\2</a>",$str);
どうかよろしくお願いします。
言語はPHPです。
0715デフォルトの名無しさん
2008/04/17(木) 07:00:532ch.netというURLが必ず入るわけだから、
それが含まれている文字列にマッチするかしないかを確認すればいだけじゃないの
0716デフォルトの名無しさん
2008/04/17(木) 07:37:42http://www.example.com/2ch.net/
がマッチしちゃうよ
0717デフォルトの名無しさん
2008/04/17(木) 07:41:25//[^/].*2ch.net/
0718デフォルトの名無しさん
2008/04/17(木) 16:16:02その場合itemがない<mark>〜</mark>があり、これはヒットさせたくありません。
javaです。
正規表現は:<mark>.*?</mark>(?<!item.*?)
<mark> item </mark> → うまくいく
<mark> item </mark> <mark> </mark> <mark> item </mark> → うまくいかない
↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑_↑↑↑↑↑↑↑↑↑
1個目のヒット_____________2個目のヒット
0719デフォルトの名無しさん
2008/04/17(木) 18:03:590720デフォルトの名無しさん
2008/04/17(木) 19:42:27そこに書かれている条件だけなら、
<mark>[^<]*item[^<]*</mark>
で上手くいくかもしれない。
<marK>とかのタグが入れ子するかもー、ということなら正規表現じゃムリ。
0721デフォルトの名無しさん
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>
どんな書き方がいいでしょうか?
ご鞭撻のほどよろしくお願いします。
0722デフォルトの名無しさん
2008/04/17(木) 20:00:02あとそういう入れ子構造は正規表現の苦手な分野だから、ほかの手が使えるならそっちのがいい
0723デフォルトの名無しさん
2008/04/17(木) 20:21:25正規表現じゃないアスタリスクってなんていうんですか?
たとえばsyslog.logから始まるファイルを表示するとき
$ ls syslog.log*
こんな感じで見てるんだけど、このときの*はメタキャラクタ?
また、こういうときに正規表現を使ってみたい場合はどうすればいいですか?
0724デフォルトの名無しさん
2008/04/17(木) 20:42:300725デフォルトの名無しさん
2008/04/17(木) 21:04:260726デフォルトの名無しさん
2008/04/17(木) 21:16:35なるほど、確かにシェルのワイルドカードですね。
納得しました。
0727721
2008/04/17(木) 22:14:46ありがとうございます。
C言語やJAVAなんかの入れ子のifのような感じといえばわかりやすいかもしれません。
こういう処理はどうやればいいのでしょうか?
正規表現とは関係ないですがよろしくお願いします。
0728デフォルトの名無しさん
2008/04/18(金) 00:05:52パーズして構文木を作って、構文木に対していろいろ処理をするのがふ
つう。
楽をしたいなら、その変な文法をやめてXMLにしてしまえ。DOMにしてか
らイロイロすればいい。
0729デフォルトの名無しさん
2008/04/18(金) 18:40:10ありがとうございます。
正規表現でやりたいです。
テーブルタグの入れ子処理みたいなものは正規表現では難しいのですね。。。
<table>
<tr>
<td>
<table>
<tr>
<td></td>
</tr>
</table>
</td>
</tr>
</table>
0730デフォルトの名無しさん
2008/04/18(金) 21:07:380731デフォルトの名無しさん
2008/04/19(土) 11:38:21人妻がどうのとか、女子高生がどうしたとかが概説に載っていて嫌な気分になりました。
そこできちんとした書籍を購入しようと思いますがオススメはありますでしょうか?
ポケット・リファレンスあたりかな?
0732デフォルトの名無しさん
2008/04/19(土) 11:48:12たしかに、正規表現を何か難しいもののように扱って、
「正規表現が分かる!」とか謳ってる本は巷に溢れてるけど、
役に立つと思ったのは一冊もないね。
処理系のリファレンスでも読んで試行錯誤するのが一番いいと思う。
0733デフォルトの名無しさん
2008/04/19(土) 11:59:21なるほど、モヤモヤがすっきりしました。
とりあえずエディタのヘルプで生きていきます。
0734デフォルトの名無しさん
2008/04/20(日) 00:56:54http://www.amazon.co.jp/dp/4798109126/
一応理論的な説明もなくはないけどメインはリファレンス。
簡単な例(任意の1文字にマッチさせるとか)から
進んだ内容(先読みとか)まで幅広くてグッド。
0735デフォルトの名無しさん
2008/04/22(火) 09:23:340736デフォルトの名無しさん
2008/04/22(火) 09:30:000737デフォルトの名無しさん
2008/04/22(火) 16:29:320738デフォルトの名無しさん
2008/04/22(火) 23:25:140739デフォルトの名無しさん
2008/04/23(水) 04:50:490740デフォルトの名無しさん
2008/04/23(水) 08:33:46マジかよwいいなー
0741デフォルトの名無しさん
2008/04/23(水) 23:54:46書評頼むよ
2版からどう変わってた?
0742デフォルトの名無しさん
2008/04/24(木) 22:03:25地図のアドレスなのですが
http://abc.com/map.php?x=123.4567890&y=34.56789012&z=1
これを下のように置換したいのですがどうやればよいのでしょうか?
x=とy=の値を取り出して
http://def.com/map.html?x=123.4567890&y=34.56789012&z=19
のようにしたいのですがよろしくお願いします。
rubyを勉強中です。
0743デフォルトの名無しさん
2008/04/25(金) 07:01:170744デフォルトの名無しさん
2008/04/25(金) 09:13:28'&'(と'?')でsplit()してからの方が楽だったりするかな。
0745デフォルトの名無しさん
2008/04/26(土) 04:02:00s!abc\.com/map\.php!def.com/map.html!
s!=1!=19!
かな。簡単なんだけどな。
ruby氏ね
0746デフォルトの名無しさん
2008/04/26(土) 05:35:42rubyのどこが嫌い?
0747デフォルトの名無しさん
2008/04/26(土) 08:05:530748デフォルトの名無しさん
2008/04/26(土) 09:37:520749デフォルトの名無しさん
2008/04/26(土) 11:09:340750デフォルトの名無しさん
2008/04/26(土) 15:15:370751デフォルトの名無しさん
2008/04/26(土) 17:04:38s!z=1!z=19!
か
s!=1$!=19!
にしないと。
0752デフォルトの名無しさん
2008/04/27(日) 09:13:42例
"2ch"
2ch
0753デフォルトの名無しさん
2008/04/27(日) 09:18:04> 質問する場合は実装言語や処理系ソフトウェア名を示しておくと話が早いです。
0754デフォルトの名無しさん
2008/04/27(日) 09:21:100755デフォルトの名無しさん
2008/04/27(日) 09:41:57Speeeeedで2 重引用符に囲まれた文字列を取り出したいです
0756デフォルトの名無しさん
2008/04/27(日) 10:09:300757デフォルトの名無しさん
2008/04/28(月) 14:17:03s="abcdefghijk"
これを
123
456
789
0
ab
cd
ef
gh
ij
k
のように取り出すことはで来ますか?
任意の文字を個数で指定して取り出すことです。難しすぎて分かりません。
java, javascriptです。
0758デフォルトの名無しさん
2008/04/28(月) 14:30:17/.{2}/
0759デフォルトの名無しさん
2008/04/28(月) 14:36:10private static String substr(String str, int start, int end) {
return str.substring(start, end > str.length() ? str.length() : end);
}
public static String[] split(String str, int len) {
int allLen = str.length();
String[] strs = new String[allLen % len == 0 ? allLen / len : allLen / len + 1];
for (int i = 0; i < strs.length; i++) {
strs[i] = substr(str, i * len, i * len + len);
}
return strs;
}
javascriptは知らんけど、同じようにできるはず。
あと、758のじゃ中途半端なものが取り出せない。
0760デフォルトの名無しさん
2008/04/28(月) 14:39:280761デフォルトの名無しさん
2008/04/28(月) 14:40:330762デフォルトの名無しさん
2008/04/28(月) 15:33:01reg=/.{1,3}/;
arr=reg.exec(s);
arr=s.match(reg);
#=> abc
だけなんで一列目だけしか取り出せなくてだめです。
当然ですけどforとかつえばいいのは分かってます。
javaの方は、
s0="abcdefghijk";
args=s0.split(".{1,3}");
#=> 空文字
で無理です。
正規表現じゃprintfみたいな整形は無理なんでしょうか。
0763デフォルトの名無しさん
2008/04/28(月) 15:37:25ああいう形の文字列として取り出すってことかよ
それは正規表現の仕事じゃない
0764デフォルトの名無しさん
2008/04/28(月) 15:40:28reg=/(...)(...)(...)/;
arr=reg.exec(s);
arr=s.match(reg);
一応不完全ですが、固定ならこういう感じなんですけど、可変長で出来ないのでしょうか。
0765デフォルトの名無しさん
2008/04/28(月) 17:43:50ドットが任意の改行以外ですが、改行にマッチさせたいときどのパターンになるんでしょうか。
func() {
a
b
}
を
func(){return c}
としたいときに改行マッチが必要になります。
k2editorです。
K2Editorの検索は、正規表現を使うものに関してはK2Regexp.dllによって行われています。 K2Regexp.dllは、Baba氏のBREGEXP.DLLに独自の拡張を施したライブラリで、 perl5互換の正規表現が使用できます。
0766デフォルトの名無しさん
2008/04/28(月) 17:46:010767デフォルトの名無しさん
2008/04/28(月) 18:21:420768デフォルトの名無しさん
2008/04/28(月) 19:08:50ああ、さんきゅうー
0769デフォルトの名無しさん
2008/04/28(月) 21:29:460770デフォルトの名無しさん
2008/04/29(火) 07:51:48どうやるんですか?
0771デフォルトの名無しさん
2008/04/29(火) 10:19:410772デフォルトの名無しさん
2008/04/29(火) 11:30:13K2Regexp.dll自体は、Perlなどと同じように (?s) を使えば . が改行にもマッチするようになる。
しかし、通常K2Editorは1行分のデータしかK2Regexpには渡さないので、そのままでは
複数行の検索はできない。検索文字列に \n や \s が含まれていた場合は、その数を数えて、
その分のデータをK2Regexpに渡すようになっているので、その場合は複数行の検索が可能。
結局、K2Editorで、改行を含む任意の1文字にマッチするパターンは、
[\s\S] あるいは (.|\n) のいずれかが適当と思われる。
なお、K2Regexp.dllは、bregonig.dllに同梱のものに差し替えて使うのがお薦め。
0773デフォルトの名無しさん
2008/04/29(火) 12:35:33知らなかったんですけど . ドットは文字じゃないんですか。
[ . \n]ではヒットしないんで。
秀丸は少し独特だけど、K2は改行もヒットするしK2の方を使います。
0774デフォルトの名無しさん
2008/04/29(火) 12:38:340775デフォルトの名無しさん
2008/04/29(火) 12:46:52a
b
}
func2(){
a
b
}
\{(\n|.)*?\}
{c}
func1(){c}
func2(){c}
ま、こんなとこですかw
便利便利w
>[ ] の中の . は . そのものとして扱われる。
. は文字クラスじゃないんですか。
改行\n \r マッチが目的なら、[^\0]とかじゃダメですか?
0776デフォルトの名無しさん
2008/04/29(火) 23:45:11何を言いたいのかよく分からない。
. はメタ文字であるが、文字クラスの中(すなわち [ ] の中)では
メタ文字ではなくリテラルとして扱われる。
0777デフォルトの名無しさん
2008/04/30(水) 11:11:342版ではゴシックだったのに、この部分は改悪といってもいいんじゃなかろうか
それ以外は結構満足だけど、オビの、「新訳でさらに読みやすくなりました。」
ってのはちょっと言い過ぎかも
Javaについて結構な修正が入ってるっぽいけど、
まだそこまでいってねー
0778デフォルトの名無しさん
2008/04/30(水) 22:33:45[[.cc.]]*cに関して何か言及してる?
合成文字関連でその辺の話題が気になる。
0779デフォルトの名無しさん
2008/05/04(日) 16:55:090780デフォルトの名無しさん
2008/05/04(日) 16:57:43(例)。$
行末の区点(。)にのみマッチし、それ以外の「。」にはマッチしない
ちなみに「.」はエスケープする必要があります
0781デフォルトの名無しさん
2008/05/04(日) 17:07:38即レスありがとうございます
検索文字列\.$としてみましたが上手くいきません・・・
0782デフォルトの名無しさん
2008/05/04(日) 17:12:49そのソフト使ったことないからよく分からないけど
正規表現使うにはBREGEXP.DLLが必要みたいだけど入ってる?
正規表現検索にチェックついてる?
置換文字列は空白になってる?
0783デフォルトの名無しさん
2008/05/04(日) 17:15:46はい。なっています
0784デフォルトの名無しさん
2008/05/04(日) 17:22:26いまためしたみた
↓でうまくいった、ごめんな
[\.$]
0785デフォルトの名無しさん
2008/05/04(日) 17:31:07できました!
ありがとうございます
0786デフォルトの名無しさん
2008/05/04(日) 17:35:18すみません
[\.$]だとすべての.を削除しませんか?
0787デフォルトの名無しさん
2008/05/04(日) 17:37:31なっちゃうね、悪気はなかったんだけどごめん
他の回答者さんを待ってくださいorz
0788デフォルトの名無しさん
2008/05/04(日) 17:44:19検索文字列 \.$\r\n
置換文字列 \r\n
0789デフォルトの名無しさん
2008/05/04(日) 17:45:06とりあえずはsedで出来るようになりました。
でも他の方の回答も待ってます!
0790デフォルトの名無しさん
2008/05/05(月) 04:03:51http://www.vector.co.jp/magazine/softnews/020316/n02031623_pic.html
使ったこと無いけど、もしかして↓を付けたらOKかも。(マルチラインモード)
自分で試してみてね。
[レ]m(M)
0791デフォルトの名無しさん
2008/05/05(月) 16:46:25名前:
佐藤よしお
----
趣味:
野球☆
あやとり☆
----
好きな食べ物:
しょうゆ☆
みそ☆
なっとう☆
----
名前:
加藤たけし
(以下、同じように膨大な人数分続くものとする)
他スレから誘導されてきました
このようなテキストファイルがあって
「好きな食べ物」の項目の行末の「☆」だけまとめて消したい、
言い換えれば「好きな食べ物:」から最初の「----」までの間の「☆」だけを
まとめて空白に置換したい場合
どのように指定してやればいいのでしょうか?
趣味、好きな食べ物とも人により個数はまちまちで、一行にひとつ表示、
行末にすべて「☆」がついてます
どうかよろしくお願いします
0792デフォルトの名無しさん
2008/05/05(月) 16:49:180793791
2008/05/05(月) 16:54:05WinXP対応のフリーで使えるソフトであれば何でもかまいませんm(_)m
0794デフォルトの名無しさん
2008/05/05(月) 17:18:170795デフォルトの名無しさん
2008/05/05(月) 17:19:090796デフォルトの名無しさん
2008/05/05(月) 18:45:330797デフォルトの名無しさん
2008/05/05(月) 18:53:130798デフォルトの名無しさん
2008/05/05(月) 19:30:340799791
2008/05/05(月) 20:04:54一括でできたらいいんですが・・・
そういうツールはないのでしょうか
0800デフォルトの名無しさん
2008/05/05(月) 20:59:490801デフォルトの名無しさん
2008/05/05(月) 21:12:22無能な人間ばっかりですいません。
他をあたってください。
0802デフォルトの名無しさん
2008/05/05(月) 23:50:35秀丸エディター → 検索 → grepして置換
HMJRE.DLL V1.85
正規表現ON
検索:好きな食べ物:\n(.+?)☆\n(.+)☆\n(.+?)☆
置換:好きな食べ物:\n\1\n\2\n\3\
これでどうでしょうか
0803デフォルトの名無しさん
2008/05/06(火) 03:42:23好きな食べ物の数は固定じゃないんじゃないか?
>>791
sed でこんなのとか。
sed -e "/好きな食べ物/,/----/s/☆ *$//"
マルチバイト文字食える sed くらい転がってるだろ。
0804デフォルトの名無しさん
2008/05/06(火) 03:57:14それですね
最後のあたりよく読んでなった^^;
>>791さん
>>803さんのを参考にしてください
0805791
2008/05/06(火) 08:46:23すごい、5万行オーバーのが一瞬で出来ちゃいました\(^o^)/
sed、自分でもいろいろ勉強してみようと思います。
まことにありがとうございました。
0806デフォルトの名無しさん
2008/05/08(木) 11:17:48[KSTNHMYRWGZDBP][AIUEO]
の5連続でも満たすけど、Nやア行が入らない
ヘボン式表記は無視でいいです
処理系はtripper+です
0807デフォルトの名無しさん
2008/05/08(木) 12:03:30トリッパーで ^([KSTNHMYRWGZDBP][AIUEO]|[AIUEON]) の5連続を検索して
テキストエディタで [^0-9a-zCFJLQVX./]{9,} を検索すればいいんじゃないかな
0808デフォルトの名無しさん
2008/05/08(木) 12:20:44広くひっかけて後で絞った方が楽だし速そう
じゃあもう、[ABDEGHIKMNOPRSTUWYZ]の10連続の結果に対して、
拗音や促音も含めて読めるパターンはどう書けばいいでしょう
0809デフォルトの名無しさん
2008/05/08(木) 14:00:00↑のパターンを使えばトリッパーだけで検索可能だった
大文字・小文字の区別無しならHitしまくり
0810デフォルトの名無しさん
2008/05/08(木) 14:31:45>>806の方法でやってるよりも明らかに速いペースで見つかる
促音だけ目をつぶって、これで必要十分だと思います
ありがとうございました
0811デフォルトの名無しさん
2008/05/08(木) 14:35:38促音にも対応してあるのか
全然ヒットしないだけで
0812デフォルトの名無しさん
2008/05/15(木) 16:31:56「任意の文字列の中にABCという文字列が含まれていたら」というルールを記述する時には
どのようにかけばよいのでしょうか?
0813デフォルトの名無しさん
2008/05/15(木) 16:54:19どのように書けばいいのでしょうか?
例えば
AAAA[1234]BBBB
から
[1234]
だけを抽出したいです。
よろしくお願いします。
0814デフォルトの名無しさん
2008/05/15(木) 17:54:060815デフォルトの名無しさん
2008/05/15(木) 23:05:570816デフォルトの名無しさん
2008/05/16(金) 00:26:580817デフォルトの名無しさん
2008/05/16(金) 01:50:31最長一致って使いづらいよね。
たぶん使いたい人がいるから、そういう仕様なんだろうけど
オレは不便で不便で仕方ないと思う。
まんどくせぇ〜〜〜〜
0818デフォルトの名無しさん
2008/05/16(金) 02:40:32もともとsedやawkしかなかった時代には最長一致しかなかったんだぜ。
でも正規表現の書き方によって最短一致に対応することが可能だからそれでいいじゃんと
考えられてたのだろうと思う。
(逆に最短一致しかなければ最長一致に対応することはできないしね)
perlあたりからやっぱ最短一致の表現もあったほうが便利じゃねって感じで導入されたんだろ
0819デフォルトの名無しさん
2008/05/16(金) 09:40:42perlあたりが幅を利かせて、perl互換になるように右へならえしてるけど、
javaとかmsとかibmあたりがデファクトの記法を作ってくんないかな。
regexpを実装する方もperl記法に合わせると仕様がでかすぎで大変だろに。
0820デフォルトの名無しさん
2008/05/16(金) 16:39:12現状だと、同じ記号が文脈によって違う意味になったり、
言語に組み込まれると、その言語の記号とも混同しそうだし。
0821デフォルトの名無しさん
2008/05/16(金) 17:17:48それがデファクトになる可能性がどんだけあるんだ?
Sun や IBM や MS なんか、日本じゃお上様も同然だけど、普通の営利企業なんだぜ?
0822デフォルトの名無しさん
2008/05/16(金) 18:23:460823デフォルトの名無しさん
2008/05/16(金) 18:29:13意味がわからない。最長一致がないと。
例えばAで始まる単語(A\w*)と言った簡単な表現すらできない。
普通は最短一致の使用頻度はかなり少ないと思うけど。
同じ内容なら最長一致のより遅くなるってのもある。
0824デフォルトの名無しさん
2008/05/16(金) 19:49:21その方が逆に分かりやすいw
javascriptはエスケープ廃止になるんじゃなかったか
h?t?tp://\w+?\.2ch\.net/\S+?/[0-9]{1,10}+/?
いい感じに動くけどもうちょっとシンプルにできんかな?
使用ツールはsakuraエディタのgrep検索
0826デフォルトの名無しさん
2008/05/16(金) 21:07:27>意味がわからない。最長一致がないと。
>普通は最短一致の使用頻度はかなり少ないと思うけど。
「使用頻度はかなり少ない」とわかってて「意味が分からない」って、どゆこと?
0827デフォルトの名無しさん
2008/05/16(金) 21:22:46いいか、カーソルキー(←→↑↓)キーを押してもカーソルは移動しない。
BS キーを押してもカーソルは左に移動しない。文字も消えない。
1行入力の途中で間違いに気づいたら @ を押してキャンセル。最初っから入れなおし。
そんな時代に、やれ search "ナントカカントカ" だの pattern="ウンコチンコマンコ" replace "ボボメンチョ" だの
そんな長ったらしいコマンドがタイプできると思う?
50歳過ぎたパートのおばちゃんに ed のコマンドを教えるオレの身になってみろよ?
検索/置換コマンドは短ければ短い方が作業効率がいい。
正規表現も短ければ短いほうが作業効率がいい。
毎日使うもんだからスグに馴れる。さすがに50過ぎたパートのおばちゃんは3週間くらいかかったけどな。
とにかく、1文字でも省略したい。1文字でも短くしたい。記号だらけ?結構毛だらけぬこ鍋だらけ!
java?MS?IBM?そんなもんに正規表現を汚されたくは無いね。こちとら年季が入ってるんだ。
正規表現の自由を侵害するな!市ねうんこヤロー!ドタマカチ割るぞ!さっさと家帰ってクソして寝ろ!!!!
0828デフォルトの名無しさん
2008/05/16(金) 21:25:480829デフォルトの名無しさん
2008/05/16(金) 21:35:31>たぶん使いたい人がいるから、そういう仕様なんだろうけど
>オレは不便で不便で仕方ないと思う。
のところで『使用頻度の少ない機能』が『デフォルト』で
あったほうが良いような発言をしてるから、なんのこっちゃってこと
最長一致がないと困るケースなんぞいくらでもあるのに
『たぶん』とかさ、ほんとにこの人正規表現わかってるんだろうか
0830デフォルトの名無しさん
2008/05/16(金) 21:51:500832デフォルトの名無しさん
2008/05/16(金) 22:18:14今でもこういう化石がいるのかw
コボルと一緒に絶滅したのかと思ってたw
0833デフォルトの名無しさん
2008/05/16(金) 22:21:37viスクリーンエディタ様様やな
0834デフォルトの名無しさん
2008/05/16(金) 22:23:120835デフォルトの名無しさん
2008/05/16(金) 22:40:310836デフォルトの名無しさん
2008/05/16(金) 23:07:430837825
2008/05/16(金) 23:58:39のやつで実験して日本語文字(なぜかあった、アクセスはもちろん出来ない)も引っかかったんで
自分なりにまた改造してみたんで一応張っときますね
h?t?tp://[-a-zA-Z0-9]+\.2ch\.net/[-./a-zA-Z0-9]*?/\d+/?
0838デフォルトの名無しさん
2008/05/17(土) 08:30:50そりゃデファクトスタンダード勝ち得てるらしい位だから、Perlの正規表現仕様はそれなりに有用なんだろうけど。
Perlの仕様がアレなんで自分の使いやすいように作ってみましたー、なんて言う人が集まってみたら個別のニーズに合った使い方ができるんじゃ・・・?
0839デフォルトの名無しさん
2008/05/17(土) 10:17:110840デフォルトの名無しさん
2008/05/17(土) 11:35:12アプリ独自といっても細かいところだけじゃないのか。
秀丸の\fは少しビビッたが。だからいきなり記法をかえるのは無理だろ。
正規表現自体が記号を多用していて独特だからな。
上にもあったが、全ての記号はエスケープするか、
記号も文字として扱いたい場合は括弧とかでくくるのどちらかしかないな。
\[abc\]\<def\>
と冗長にするか、
\QUOTE[abc]<def>\QEND
みたいなの。
似たような仕様はJavaにもあったが、これはもう仕様を策定してデファクトになるしかない。
0841デフォルトの名無しさん
2008/05/17(土) 15:17:38以下2つは個別に動作するのですが
g/^$/d
g/^#/d
これらをまとめようとすると動作しません
g/^#|^$/d
g/(^#|^$)/d
g/^(#|$)/d
書き方が間違っているんでしょうか・・
0842デフォルトの名無しさん
2008/05/17(土) 15:20:390843デフォルトの名無しさん
2008/05/17(土) 15:30:030844デフォルトの名無しさん
2008/05/18(日) 01:36:530845デフォルトの名無しさん
2008/05/18(日) 03:17:09たとえば、java だと System.out.println() って何だ?って思ったら
google [ System.out.println() ][検索]
で解説ページがたくさんひっかかる。
ところが、正規表現で /\d+/ の \d って何だ?って思って
google [ \d ][検索]
とかやっても関係なさそうなのしかひかからない。
何の知識も無いヤツがパッと見て意味を調べようにも調べにくい。
・・・単に馴れの問題だけどね。毎日使ってればすぐに覚えられるのにね。
せっかくエディタに正規表現検索機能があっても使わない人はたくさんいる。
0846デフォルトの名無しさん
2008/05/18(日) 03:39:440847デフォルトの名無しさん
2008/05/18(日) 04:16:38そんな話じゃないの?POSIX だと軽装すぎなのかな。
0848デフォルトの名無しさん
2008/05/18(日) 06:15:52正規表現は記号に頼りすぎでカオスになってる
別に手に馴染んでるから困らないけど、たまに使わなくなるといちいちマニュアル見る事になるしめんどうじゃん
結局細かい機能は使わないし忘れる
0849デフォルトの名無しさん
2008/05/18(日) 06:18:50今じゃ言語とかいって肥大化してるけど、設計がプログラム言語じゃなくて、テキスト処理用途だったからカオスになってる。
バッチとかのテキスト処理というよりも、プログラムやりたいならrubyでいいよ。
0850デフォルトの名無しさん
2008/05/18(日) 06:48:430851デフォルトの名無しさん
2008/05/18(日) 08:07:570852デフォルトの名無しさん
2008/05/18(日) 09:55:59pearlは真珠、言語はperl。
0853デフォルトの名無しさん
2008/05/18(日) 10:02:53気持ちはわからないでもないけど、
そもそも正規表現って数学が基になってるからしょうがない。
数式が (1 + a * (3.4 / 5.6 ** b) - c + Σf(n) みたいになるのと同じだね。
記号で抽象化されてるからこその数式みたいな強力な表現力だし。
0854デフォルトの名無しさん
2008/05/18(日) 10:03:24自己破産者のスレか?
0855デフォルトの名無しさん
2008/05/18(日) 10:35:24説明するときは記号で抽象化してもいいけど、
設計するときはその記号とやらに頼る必要もなく、使いやすいように実装してほしい。
例えば今の設計だと、その数式の各各を正規表現で取り出すとしたら、正規表現のソースが汚くなるんじゃないのか?
読み返したとき何なってるのかさっぱり分からなくなる。まあ、所詮はハック専用だけど。
0856デフォルトの名無しさん
2008/05/18(日) 11:09:19慣れちゃえば簡潔でイイ。
POSIXの[:alpha:]とかってのは冗長でイヤなんだけど、
こっちの方が可読性は多少は上?
忘れても、又はよく使わない表現でも、一応は読めるのが利点か。
0857デフォルトの名無しさん
2008/05/18(日) 12:09:26何十年も前なのに、腐ってないだろ?確かに冗長ではあるけど、あんまり使わないし、それは実装依存じゃないのか?
実装依存なことは正規表現と全く関係ない。
低学歴が設計してもカオスなだけになるしwwwMSのC$みたいなのとか最強に笑えるww
0858デフォルトの名無しさん
2008/05/18(日) 12:16:38細かい方言はいっぱいあるけど
全く別物って見たことないな。
0859デフォルトの名無しさん
2008/05/18(日) 12:20:00C++はカオスというよりも、誰もが既にゴミ言語と認めるだろう。
たぶんC++を極めたとしても、いざ何か作ろうとしても何も作れないんだろうけど。
言語とか設計というのは、あくまでソフト側の問題であるし、
冗長とか関係なくて意味不明・複雑すぎたらカオスだし、そういうもんじゃないのか?
0860デフォルトの名無しさん
2008/05/18(日) 12:34:32C++/C#/Dを持ってくる意味がわからん
0861デフォルトの名無しさん
2008/05/18(日) 13:35:42前後のレスと話が繋がってねーもの
0862デフォルトの名無しさん
2008/05/18(日) 13:37:15コボラーの俺バンザイ(泣
0863デフォルトの名無しさん
2008/05/18(日) 14:44:210864デフォルトの名無しさん
2008/05/18(日) 17:13:25か、かっこいいタル……
0865デフォルトの名無しさん
2008/05/18(日) 17:34:59頭んなかは記号だらけでしょw
0866デフォルトの名無しさん
2008/05/18(日) 23:13:33違う実装も可能なんだろうけど、
イライザ効果(人工知能じゃない方)があるから、
より多くの人が直観で機能を把握できる方が有利。
0867デフォルトの名無しさん
2008/05/19(月) 10:21:060868デフォルトの名無しさん
2008/05/19(月) 10:47:450869デフォルトの名無しさん
2008/05/19(月) 22:53:26パターンを変数に突っ込んで使ったら?
0870デフォルトの名無しさん
2008/05/19(月) 22:55:500871デフォルトの名無しさん
2008/05/19(月) 23:13:49sedやperlで済ませるような仕事を
わざわざC++とboostで書くのかよw
0872デフォルトの名無しさん
2008/05/20(火) 00:27:07検索の中断がやりやすくなるようにリカーシブコールを排除するとか
合成文字関係の対処とか、ハードウェアアクセラレーションを考えるとか
社会保険庁じゃないけど大量のデータの突合に正規表現を使うと
空間・計算のコストが洒落にならないからVMの構造の再考とか
0873デフォルトの名無しさん
2008/05/20(火) 01:16:19使い勝手最悪だわもーなんじゃこれ〜
正規表現が組み込み演算子じゃないのはいいとして、
正規表現クラスのメソッドmatchが文字列の"先頭"と一致するかどうかって調べてどうすんだよこれ
文字列中のどっかでマッチさせようと思ってメソッドsearch使ったらmatchオブジェクト返してこねーし
なんか俺の中で全然直感的じゃないわpython
正規表現の扱いは組み込みのperlか、直感的に馴染むrubyがいいわ
0874デフォルトの名無しさん
2008/05/20(火) 01:23:260875デフォルトの名無しさん
2008/05/20(火) 01:29:09つまりpearl自体は実は言語とかじゃなくて、正規表現の現在の進化なんだとw
0876デフォルトの名無しさん
2008/05/20(火) 01:32:20普通は正規表現クラスのインスタンスメソッドでsearchってやったらmatchオブジェクト返してくるだろ常識的に考えて
pythonの正規表現クラスのsearchメソッドがstringクラスで定義してあればまだ話はわかる
とりあえずモジュール定義関数とメソッドの定義をどういう基準で分けてるのか全然わからんから使いづらい
0877デフォルトの名無しさん
2008/05/20(火) 01:37:18>>> import re
>>> type(re.search(r'fo*', 'foobar'))
<type '_sre.SRE_Match'>
>>> type(re.compile(r'fo*').search('foobar'))
<type '_sre.SRE_Match'>
0878デフォルトの名無しさん
2008/05/20(火) 01:44:20java の正規表現つかったことあるか?
たとえば Windows のパスの \ を / に置換したいとする。
perl だと patg =~ s!\\!/!g
java だと path = path.replaceAll("\\\\", "/")
perl では、\ は エスケープしなきゃならないから \\ と書く必要がある。
java だと \\ をエスケープしなきゃならないから \\\\ と書かなきゃならん。
\ 一文字を検索するのに \\\\ と書くって事だ。
これが言語組み込みと、ライブラリの違いね。
ちなみに VisualBasic は \ をエスケープしなくていいから perl と同じく \\ でOK。
0879デフォルトの名無しさん
2008/05/20(火) 01:48:000880デフォルトの名無しさん
2008/05/20(火) 02:25:55それは組み込みかどうかとは関係ないんじゃないか?
Pythonはライブラリで正規表現を実現しているけど、r'' と '' という二つの形式の文字列がある。
r''のほうを使えば'\'が二倍になるのは避けられるよ。
0881デフォルトの名無しさん
2008/05/20(火) 05:38:12書籍版『Pythonチュートリアル』巻末の付録オススメ
Perl/Rubyから入ってきた人が正規表現でイラつくところをケアしてくれてる
0882869
2008/05/20(火) 07:48:56だねw
あとはxオプションつけて
字下げとコメントつけるくらいかなぁ
戻り読みが入った長いパターンだと
それもつらいけど。
0883デフォルトの名無しさん
2008/05/20(火) 12:44:00ちょとワラタ
0884デフォルトの名無しさん
2008/05/20(火) 13:06:110885デフォルトの名無しさん
2008/05/20(火) 13:42:32\\\をjavaの文字列リテラルで表すなら"\\\\\\"で済む
あくまで文字列リテラルの表記法がそうなっているだけで
javaの正規表現APIに渡される文字列は\を渡すべきところは\でなければならない
たとえばストリームから正規表現を文字列として読み込むときとかは\を\\にすると違うものになる
0886デフォルトの名無しさん
2008/05/20(火) 13:50:01"\\\\\\\\\\\\"で正しい
0887デフォルトの名無しさん
2008/05/20(火) 13:59:440888デフォルトの名無しさん
2008/05/20(火) 14:17:53斜線のどこが拝金主義?
0889デフォルトの名無しさん
2008/05/20(火) 14:56:360890デフォルトの名無しさん
2008/05/20(火) 15:02:38斜線じゃないと?
0891デフォルトの名無しさん
2008/05/20(火) 15:09:370892デフォルトの名無しさん
2008/05/20(火) 15:10:390893デフォルトの名無しさん
2008/05/20(火) 19:17:44フヒヒwwwシャーセンwww
0894デフォルトの名無しさん
2008/05/20(火) 22:38:58真珠はpearlで合ってるけど、言語はperl、aがない。
0895デフォルトの名無しさん
2008/05/20(火) 22:57:06まるで武●士みたいなヤツだな
0896デフォルトの名無しさん
2008/05/20(火) 23:21:070897デフォルトの名無しさん
2008/05/20(火) 23:22:10で、正規表現パターンをテキストファイルから
・・・たとえば MyApplication.properties というテキストファイルから読み込むとする。
何も考えないヴァカなjavaプログラマは、テキストファイルにこう書くんだな。
検索文字列=\\\\
置換文字列=/
これで \ を / に置換できると思ってる。が、当然うまくいかない。
\\\\ と書くのは、あくまでもjavaソースコードの中だけで、外部のリソースから入力するときは
普通に \\ でいいんだよ。
この違い。なぜそうなるのか。
コレが理解できないヤツが結構多い。しかも結構ベテランのjavaエンジニアにもいるんだな。
0898デフォルトの名無しさん
2008/05/20(火) 23:31:170899デフォルトの名無しさん
2008/05/20(火) 23:34:310900デフォルトの名無しさん
2008/05/20(火) 23:36:230901デフォルトの名無しさん
2008/05/21(水) 07:56:16\\\\\\\\\\武士\\\\\\\\\\\\\\\\\
\\\\\
\\\\\\\\\\\\\\\レイク\\\\\\\\\\\ \\\\\
0902デフォルトの名無しさん
2008/05/21(水) 08:23:29どういう言語使うの?
0903デフォルトの名無しさん
2008/05/21(水) 08:42:150904デフォルトの名無しさん
2008/05/21(水) 10:19:100905デフォルトの名無しさん
2008/05/21(水) 10:19:490906デフォルトの名無しさん
2008/05/21(水) 12:28:560907デフォルトの名無しさん
2008/05/21(水) 12:56:042chにコード貼り付けるのに、インデントして見やすくしたいなと思ったんですが
意外と難しい・・
0908デフォルトの名無しさん
2008/05/21(水) 13:01:510909デフォルトの名無しさん
2008/05/21(水) 13:11:22どうせなら全角空白じゃなくて とかに置換汁
0910デフォルトの名無しさん
2008/05/21(水) 13:16:44ちょっとテストさせてください
 ←&nbspです
0911デフォルトの名無しさん
2008/05/21(水) 13:17:54&nbsp→空白の置換は簡単なので、
見栄えが重要な時は全角のほうがよいと思います
0912デフォルトの名無しさん
2008/05/21(水) 13:27:081個
2個
0913デフォルトの名無しさん
2008/05/21(水) 13:28:09 への置換を目指します
0914デフォルトの名無しさん
2008/05/21(水) 13:32:160915デフォルトの名無しさん
2008/05/21(水) 13:59:330916デフォルトの名無しさん
2008/05/21(水) 18:34:14全角はコピペ即実行できないから嫌い
0917デフォルトの名無しさん
2008/05/21(水) 21:29:43全角を半角に置換するスキルも無いの?
0918デフォルトの名無しさん
2008/05/21(水) 21:44:04\/ ● 、_ `ヽ
/ \( ● ● |つ
| X_入__ノ ミ 俺は釣られないクマ ・・・
、 (_/ ノ
\___ノ゙
0919デフォルトの名無しさん
2008/05/21(水) 22:37:28ネットで拾ってきたソースを組み込んだら謎のエラーが増えて、
さんざん困った挙句全角スペースが原因だったことがある
0920デフォルトの名無しさん
2008/05/22(木) 08:33:040921デフォルトの名無しさん
2008/05/22(木) 13:13:390922デフォルトの名無しさん
2008/05/22(木) 13:34:400923デフォルトの名無しさん
2008/05/22(木) 13:42:210924デフォルトの名無しさん
2008/05/22(木) 16:42:040925デフォルトの名無しさん
2008/05/22(木) 19:26:530926デフォルトの名無しさん
2008/05/22(木) 21:49:48ユニコードの空白文字はユニコードの空白文字じゃね?
ZsカテゴリとかZlカテゴリとかZpカテゴリとか。
0927デフォルトの名無しさん
2008/05/22(木) 23:04:370928デフォルトの名無しさん
2008/05/23(金) 18:44:07\b[0-9a-f]{32}\b
\b[0-9a-f]{40}\b
\b[0-9a-f]{64}\b
を一行にまとめてくだしあ。
てけとーに
\b[0-9a-f]{32,40,64}\b
とかやってみたけど案の定駄目ですたwおながいします
0929デフォルトの名無しさん
2008/05/23(金) 18:49:07こうですか?わかりません><
0930デフォルトの名無しさん
2008/05/23(金) 19:08:12どもっす!
ハッシュ3種の抽出はそれぞれおkでしたけども、
ファイル容量の3桁の数字に誤爆してるようだすw
53,864,862
~~~
とか378,231,040
~~~
とからへん…
0931デフォルトの名無しさん
2008/05/23(金) 19:48:05int a;
int *b;
int c = 0;
static int d;
volatile int e;
int f,volatile g;
unsigned h;
signed int i,j;
int const* k;
int * const l = 0,m,*n;
全部マッチしなければダメなんだぜ。
Cは邪悪過ぎる…orz
0932デフォルトの名無しさん
2008/05/23(金) 20:04:430934デフォルトの名無しさん
2008/05/23(金) 20:56:23\b[0-9a-f]{32}([0-9a-f]{8}([0-9a-f]{24})?)?\b
とか?
>>929は全然違う希ガス。
0935デフォルトの名無しさん
2008/05/23(金) 21:16:50正規表現「だけ」で構文解析は不可能でしょ?
struct S { int x, y; struct S *next; } a, b, c, d, *e;
とかこんなんも declaration ですよ
0937デフォルトの名無しさん
2008/05/23(金) 22:40:000938デフォルトの名無しさん
2008/05/23(金) 23:09:44;か,の前にあって空白か*の後ろにある文字列が変数名ってことで
あと関数ポインタはあきらめる
0939デフォルトの名無しさん
2008/05/23(金) 23:11:52それ幾らなんでもは単純すぎでしょう。宣言には初期化子がついてることもある。
int a[] = { 1, 2, 3 };
のようにね。
0940デフォルトの名無しさん
2008/05/23(金) 23:30:280941デフォルトの名無しさん
2008/05/23(金) 23:31:050942デフォルトの名無しさん
2008/05/23(金) 23:32:10int c, *d;
0943デフォルトの名無しさん
2008/05/23(金) 23:38:24それを記すにはスレの残りが少なすぎる
0944デフォルトの名無しさん
2008/05/23(金) 23:39:56とでも書いておけばいいのかな
0945デフォルトの名無しさん
2008/05/24(土) 00:48:19bisonオワタ
こうですか><
0946デフォルトの名無しさん
2008/05/25(日) 04:49:43に通ずるものがあるな
0947デフォルトの名無しさん
2008/05/25(日) 13:52:46A. 自明である
0948デフォルトの名無しさん
2008/05/26(月) 10:31:490949デフォルトの名無しさん
2008/05/26(月) 22:42:20"123499995678"
英字は何文字あるかはわからないが、その文字数分だけ9に置き換えたいのですか
正規表現で可能でしょうか?
0950デフォルトの名無しさん
2008/05/26(月) 22:46:46検索文字列 : [a-z]
置換後 : 9
大文字小文字区別するときは、わかるよな?
0951デフォルトの名無しさん
2008/05/27(火) 11:11:490952デフォルトの名無しさん
2008/05/27(火) 23:06:36hoge=1234ab
のhoge=の後の部分を
hoge=XXXXXX
のように、Xに置き換えるにはどうすればいいでしょうか?
0953デフォルトの名無しさん
2008/05/27(火) 23:11:250954デフォルトの名無しさん
2008/05/27(火) 23:18:39>>953は条件を満たしてないな
0955>>952
2008/05/28(水) 07:08:08すいません、1234abの部分は不定となっており、123456となったり、12abとなったりします。
でも、Xにする文字数は同じにしたいのですが、正規表現で可能でしょうか?
0956デフォルトの名無しさん
2008/05/28(水) 07:48:52可能というか基本すぎ。それくらいググれ。
0957デフォルトの名無しさん
2008/05/28(水) 08:18:200958デフォルトの名無しさん
2008/05/28(水) 10:30:040959デフォルトの名無しさん
2008/05/28(水) 13:06:000960デフォルトの名無しさん
2008/05/28(水) 14:36:500961デフォルトの名無しさん
2008/05/28(水) 14:41:04sedだけでやるのは厳しい気がするからRubyで書くと
k, v = "key1=value1".split("=")
"#{k}=#{'X' * v.length}" #=> "key1=XXXXXX"
正規表現使ってないしsedじゃなきゃ駄目とかいうならスルーしてね
0962デフォルトの名無しさん
2008/05/28(水) 14:55:500963デフォルトの名無しさん
2008/05/28(水) 15:00:190964961
2008/05/28(水) 15:15:45hoge=X234ab
...
hoge=XXXXX
すげー! sedじゃ厳しいかもとか言ってすみませんでした >>962
0965デフォルトの名無しさん
2008/05/28(水) 17:52:58xxxhogexxx
xxx\hogexxx
hogeにはマッチしないけど\hogeにはマッチするという書き方をしたいのですがどうすればいいでしょうか?
また、hogeと同様にhuga,fooもあわせてチェックするにはどうしたらいいでしょうか?
xxx\fugax\hogexxx = マッチする
xxx\fugax\hogex\foox = マッチする
xxxfugax\hogexxx = マッチしない
xx\xfoo\hogexxx = マッチしない
0966デフォルトの名無しさん
2008/05/28(水) 18:54:100967デフォルトの名無しさん
2008/05/28(水) 21:00:170968965
2008/05/29(木) 12:01:51ありがとうございます。
最初に
\hoge,\foo,\fugaとかが来る可能性もあります。
またx以外の文字(2バイト文字も)も入っています。
後からで申し訳ありません。
0969デフォルトの名無しさん
2008/05/30(金) 13:21:37aaa<A href="aaa.html" target="_blank">リンク<BR>1つ目</A>bbbbb
結果として、<A href="aaa.html" target="_blank">リンク<BR>1つ目</A>
が戻ってきてほしいのですが、思うように動きません。
コードは以下のように書いています。
var testReg = new RegExp("(<a[^>]+>)([^(</a>)|(<a)]*)(</a>)");
var ret = Str.match(testReg, "i");
疑問なのは、<BR>をなくすと正常に抽出ができる点です。
正規表現として悪い部分をご教授願います。
0970デフォルトの名無しさん
2008/05/30(金) 13:30:58[^...]
は文字の否定で文字列の否定ではないよ。
0971969
2008/05/30(金) 14:01:56ありがとうございます。
意味がわかりました。
ところで、文字列の否定は不可能でしょうか?
0972デフォルトの名無しさん
2008/05/30(金) 14:37:28+ 'bbb<A href="bbb.html" target="_blank">リンク<BR>2つ目</A>ccccc';
var testReg = new RegExp("<a.*?>.*?</a>", "i");
var ret1 = testReg.exec(Str);
WScript.Echo(ret1);
var ret2 = Str.match(/<a.*?>.*?<\/a>/i);
WScript.Echo(ret2);
0973デフォルトの名無しさん
2008/05/30(金) 15:43:12Str = 'aaa<A href="aaa.html" target="_blank">リンク<BR>\n1つ目</A>bbbbb'
+ 'bbb<A href="bbb.html" target="_blank">リンク<BR>2つ目</A>ccccc';
var testReg = new RegExp("<a.*?>.*?</a>", "i");
var ret1 = testReg.exec(Str);
WScript.Echo(ret1);
perl なら s つければうまくいくんだが
$str = qq!aaa<A href="aaa.html" target="_blank">リンク<BR>\n1つ目</A>bbbbb!
. qq!bbb<A href="bbb.html" target="_blank">リンク<BR>2つ目</A>ccccc!;
$str =~ m!<a.*?>.*?</a>!is;
print $&;
0974デフォルトの名無しさん
2008/05/30(金) 15:46:270975デフォルトの名無しさん
2008/05/30(金) 17:22:470976デフォルトの名無しさん
2008/05/30(金) 17:52:370977969
2008/05/30(金) 18:15:56リンクの入れ子とかになっている場合に都合が悪かったので、
この方法はできませんでした。
>>974,975
なかなか厳しそうって事ですよね?
とりあえず、とりあえず正規表現1発で
処理するのは諦めました。
>>976
createRange()にて選択している部分のみを対象としているので、
パースでできなかったのですorz
結局、<aタグの開始と終了を別々に検索して、
切り出すことにしました。
皆様ありがとうございました。
0978デフォルトの名無しさん
2008/06/01(日) 11:09:10例えばA B Cの組み合わせで以下のパターンのみにマッチするような正規表現です
A B C
A C B
B A C
B C A
C A B
C B A
0979デフォルトの名無しさん
2008/06/01(日) 11:13:250980デフォルトの名無しさん
2008/06/01(日) 11:23:170981デフォルトの名無しさん
2008/06/01(日) 11:38:410982デフォルトの名無しさん
2008/06/01(日) 23:52:020983デフォルトの名無しさん
2008/06/02(月) 00:16:240984デフォルトの名無しさん
2008/06/02(月) 00:26:340985デフォルトの名無しさん
2008/06/02(月) 01:57:17レス数が950を超えています。1000を超えると書き込みができなくなります。