正規表現道場@2ch Part4
レス数が950を超えています。1000を超えると書き込みができなくなります。
0001nobodyさん
05/01/17 11:51:25ID:SH1ygN1Pこのスレは有用そうな正規表現を紹介したり、
どう表現したらいいかわからないときに質問をしたりするためのスレッドです。
質問するときは使用言語や得たい結果をなるべく詳しく書きましょう。
註:& や " を書くときには、& " と描いておきましょうね。
Perlメモ
http://www.din.or.jp/~ohzaki/perl.htm
正規表現メモ
http://www.kt.rim.or.jp/~kbk/regex/regex.html
Regex::Diagram.pm
http://www.cc.rim.or.jp/~midorin/mad-p/RegexDiagram.html
正規表現
http://www.cc.rim.or.jp/~midorin/mad-p/perl/benkyou/PRC2kRegex/
UNIX正規表現入門 目次
http://www01.u-page.so-net.ne.jp/jc4/hiroyuki/rex_index.html
Regular Expression(Riue ちゃんの正規表現講座) - Index
http://www.sixnine.net/regexp/
ほとんどは↓のリンク集にまとまっています。
正規表現最新リンク集2002
http://www2.famille.ne.jp/~akio1998/l_grep.html
過去スレ
正規表現道場@2ch
http://pc.2ch.net/test/read.cgi/php/996105815/
正規表現道場@2ch Part2
http://pc2.2ch.net/test/read.cgi/php/1038146241/
正規表現道場@2ch Part3 s/煽り|荒らし/あぼーん/g
http://pc5.2ch.net/test/read.cgi/php/1069245758/
0896nobodyさん
2005/12/14(水) 12:58:51ID:???([1-9]+[0-9]|[1-9])(\.[0-9]+)?|0+\.0*[1-9]
>>895
( ´_ゝ`)フーン
0897nobodyさん
2005/12/14(水) 13:52:46ID:???0898nobodyさん
2005/12/14(水) 13:54:14ID:???0900nobodyさん
2005/12/14(水) 14:14:29ID:???^([0-9]*[1-9][0-9]*(\.[0-9]+)?|0+\.[0-9]*[1-9][0-9]*)$
つーか>>888で「0以上」って0含んでもいいじゃん
「0を越える」の間違いだな
0901nobodyさん
2005/12/14(水) 14:41:58ID:???0902nobodyさん
2005/12/15(木) 20:55:26ID:???^[^Final].*\r?
と書いた所何もヒットしないんですが
自分では「先頭が」+「Finalでない」+「何でもOK」+「改行」
と書いているつもりなんですが…
どこがおかしいのか教えて下さいまし
0903nobodyさん
2005/12/15(木) 21:00:09ID:???0904nobodyさん
2005/12/15(木) 21:27:27ID:???否定したさに[]にいれてしまった…。
ttp://www.sixnine.net/regexp/
をみながらやってたんですが
{}、/(/)等の中では^は否定にはならないですか?
0905nobodyさん
2005/12/15(木) 23:40:50ID:???一般的な正規表現に文字「列」の否定はありません。Perl には ?! あるいは ?<! といった拡張が存在しますが。
プログラム中で使おうと思っているなら、先頭が Final で始まる行を正規表現で引っかけて、それ以外、とするのが簡単だと思います。
Perl だと↓な感じで。
print "NOT FINAL\n" if $str !~ /^Final/;
むりやり正規表現で表すなら ^([^F]|F[^i]|Fi[^n]|Fin[^a]|Fina[^l]).*\r? になるんじゃないかと。
0906nobodyさん
2005/12/15(木) 23:45:53ID:???丁寧に解説して頂きありがとうございます
今回はJ-editというエディタ内で置換したかったのでプログラムではできなさそうですが
勉強になりました。
0907nobodyさん
2005/12/16(金) 00:10:03ID:???0908nobodyさん
2005/12/16(金) 00:13:11ID:???0909nobodyさん
2005/12/16(金) 05:39:59ID:???エディタがサポートしてないとしたら仕方ないが、その正規表現は泥臭すぎる……
サポートしてるなら「^(?!Final).*$」がいいんじゃないか。
0910nobodyさん
2005/12/16(金) 14:20:34ID:3Jn+fCoS$val = "<TD>1000〜</TD>";
preg_match_all("/<TD>(.*)〜<\/TD>/", $val, $name);
とすると $name[0][1]には1000〜となり〜が入ります。
これをぬこうにも
$name2 = str_replace("〜", "", $name[0][1]);
$name2 = 1000〜となり〜が取れません。
0912nobodyさん
2005/12/16(金) 14:33:08ID:???0913nobodyさん
2005/12/17(土) 23:21:43ID:9ZVQMdkG0914nobodyさん
2005/12/18(日) 02:15:55ID:E4qxneT12バイト文字を全く使っていない書き込みはendにしたいのですが、
どのように表現したらいいのでしょうか?
どうぞよろしくお願いします。
0918nobodyさん
2005/12/20(火) 20:28:35ID:???ttp://ftp.iasi.roedu.net/pub/mirrors/mozdev.org/greasemonkey/linkify.user.js
で,http://〜をttp://〜も対応させたくて
const urlRegex = /\b(https?:\/\/[^\s+\”\<\>]+)/ig;
をさらに日本語対応化させて
const urlRegex = /\b([^h])(ttps?:\/\/[^\s\”\<\>\/]+\w+\/?[!#-;=\?-~]*)/ig;
としてみたんですがうまくいかず...
ttp://〜をマッチさせる方法教えてもらえないでしょうか
0919nobodyさん
2005/12/20(火) 21:23:10ID:???他の文字列とマッチングをさせたいのですが
どうすればいいでしょうか?
対象とする文字列は Mem[0]、Mem[1]…(以下、数字が増加)
になります。
正規表現の "Mem\[[0-9]*\]" で試したのですが、
上手くマッチしてくれませんでした。
何か良い方法があれば教えてください。
0920nobodyさん
2005/12/20(火) 21:43:50ID:???0921919
2005/12/20(火) 21:51:53ID:jBM1u1uW即レスありがとうございます。
ただ、 \\[ という書き方だと、
\[ (バックスラッシュ[) とマッチするような気がするのですが…
[ とマッチさせる場合は特別で、
バックスラッシュが二つ必要になるのでしょうか?
0922nobodyさん
2005/12/20(火) 22:55:56ID:???詳しくは
ttp://java.sun.com/j2se/1.4/ja/docs/ja/api/java/util/regex/Pattern.html#bs
0923919
2005/12/20(火) 23:45:59ID:???文字列として扱いたいのは\ではなく[と]の方です。
単に[と]を書くと、括弧の中に着目されてしまうので
\[や\]と書けば良いのかと思ったのですが、
この方法だとマッチしたという判定にならず。
他に記述方法があるのかどうかと…
分かりにくい質問でスミマセンでした。
リンク先、参考にしてみます。
0925nobodyさん
2005/12/21(水) 18:13:17ID:???その外部ファイルにどんなものが定義されているかを
htmlのtable要素を使って一覧にしたいと思い、下記のようにしましたがパースエラーと出ました。
XXX {
○○○
}
とあるものを
<table>
<tr>
<td>XXX</td><td>○○○</td>
</tr>
</table>
のように表示させたいのですがこの条件でマッチする表現を教えて頂けますか
0926nobodyさん
2005/12/21(水) 21:38:17ID:???0927925
2005/12/21(水) 23:26:34ID:???ありがとうございます。
下記のコードで試してみたところ
改行以降をひろってくれなかったのでちょっと改造にチャレンジしてきます。
-----------------------------
<table border="1" cellspacing="0" cellpadding="0" width="100%">
<?
$lines = file('./hoge.css');
$file = implode('',$lines);
preg_match_all("/(?:^|\n)([^\s\{]+)\s*\{\s+(\S+)/",$file,$css);
for ($i=0; $i< count($css[0]); $i++) {
?>
<tr bgcolor="#9999cc">
<td><?=$css[1][$i]?></td><td><?=$css[2][$i]?></td><td><?=$css[2][$i]?></td>
</tr>
<?
}
?>
</table>
0928925
2005/12/22(木) 00:02:45ID:???最後の(\S+)を(.*)}?にして
"}が来るまでを最短マッチ"って書いたつもりでしたが.*は改行にマッチしないんですね…。
orz
むつかしいぃぃぃ
0929nobodyさん
2005/12/22(木) 01:04:42ID:???0930??
2005/12/22(木) 06:00:17ID:VYb6VtoN0931??
2005/12/22(木) 06:08:36ID:VYb6VtoNbut I can read.
I use PHP.
I want to change every HTML tags in a file as follows:
<span class='test'>abcdefg</span>
->
<b><font color=#ff0000>abcdefg</font></b>
I tried
eregi('<span class="test">.*</span>', '<b><font color=#ff0000>.*</font></b>');
It does not work.
0932nobodyさん
2005/12/22(木) 11:16:59ID:???ereg-replace ?
0933??
2005/12/22(木) 11:46:44ID:VYb6VtoNereg-replace
desu
sumimasen
0934nobodyさん
2005/12/22(木) 15:40:37ID:???http://jp2.php.net/manual/ja/function.ereg-replace.php
こんな感じでしょうかね?
$text = ' <span class=\'test\'>abcdefg</span>';
$text = ereg_replace('<span class=\'test\'>','<b><font color=#ff0000>',$text);
$text = ereg_replace('</span>','</font></b>',$text);
echo $text;
でも
http://jp2.php.net/manual/ja/function.str-replace.php に
「(正規表現んような)技巧的な置換ルールを 必要としない場合、
ereg_replace() または preg_replace()の替わりにこの関数を常用するべきです。」
ってあるね。
0936925
2005/12/25(日) 16:01:19ID:???@@@@でexplodeしてループ処理しました。
ヘタレだなぁ
orz
0937nobodyさん
2006/01/04(水) 21:06:51ID:???if(ereg("[^0-9a-zA-Z@_\-\.]+",$a)){エラー処理}
だとうまくいかないようです。どこがおかしいのでしょうか?
0938nobodyさん
2006/01/05(木) 13:07:16ID:???0939nobodyさん
2006/01/05(木) 13:10:56ID:???http://www.japan.xitami.net/nsw/php/mailaddress.phtml
http://www.tt.rim.or.jp/~canada/comp/cgi/tech/mailaddrmatch/
http://www.din.or.jp/~ohzaki/perl.htm#Mail
0941nobodyさん
2006/01/08(日) 16:38:18ID:???どうすればいいでしょうか?
[1-12]ではもちろんだめぽですよね・・・
0942nobodyさん
2006/01/08(日) 16:42:11ID:???0944nobodyさん
2006/01/08(日) 17:30:16ID:???0945nobodyさん
2006/01/08(日) 17:37:14ID:???0946nobodyさん
2006/01/08(日) 18:03:28ID:???0947nobodyさん
2006/01/08(日) 18:16:03ID:???0948nobodyさん
2006/01/08(日) 21:20:50ID:???0949nobodyさん
2006/01/09(月) 05:39:24ID:DKtQK5nB[1-9-]であってる?
それともエスケープしなきゃならんのでしょうか。
0950nobodyさん
2006/01/09(月) 12:21:39ID:???0951nobodyさん
2006/01/09(月) 16:46:54ID:???[^hoge]だとhとoとgとe以外になってしまいますよね
0952nobodyさん
2006/01/09(月) 17:32:03ID:???少し自分で考え、実験してみてそれでもわからなくなったら質問しろ
0953nobodyさん
2006/01/09(月) 17:46:24ID:???preg_match_all("/<A>/", $var, $array1);
preg_match_all("/A/", $var, $array2);
phpなんですが、$array2にはAが入ってるんですが、
$array1には<A>が入りません。
<>が問題ありなのは分かりますが、根本的理由が分かりません。
へるぷみー
0955nobodyさん
2006/01/09(月) 18:32:37ID:???質問の時は使用言語を書いてほしいんだ。
http://www.din.or.jp/~ohzaki/regex.htm#Without
0957953
2006/01/09(月) 19:15:11ID:???タグとして処理されてました・・・鬱だ・・・
0959nobodyさん
2006/01/09(月) 21:15:45ID:???>483-491
>902-909
0960nobodyさん
2006/01/09(月) 21:16:25ID:???0961nobodyさん
2006/01/09(月) 22:03:59ID:???0962951
2006/01/09(月) 22:19:51ID:???0963nobodyさん
2006/01/09(月) 22:32:14ID:???http://www.php.net/manual/ja/ref.pcre.php
http://www.php.net/manual/ja/pcre.pattern.syntax.php#regexp.reference.assertions
0964馬鹿です
2006/01/09(月) 23:13:46ID:3zyjeInA正規表現で例えば、全角カタカナを表したら、[ァ-ヶ]と
(?:\xA5[\xA1-\xF6])と(?:\x83[\x40-\x96])とありますよね。
この中のどれを使えばいいんでしょうか?後の2つはeucとsjisと
いうことは分かるんですが結局[ァ-ヶ]を使えばどちらでも(eucとsjis)
使えるということなんでしょうか?初心者ですいません。。
0966nobodyさん
2006/01/09(月) 23:46:07ID:???せんせー、これ上手くいくんですけど。
use encoding qw(shiftjis);
my $str = "アノネキュウタロウハネ";
$str =~ /^[ァ-ヶ]+$/ and print "true";
0967nobodyさん
2006/01/10(火) 00:01:48ID:???言ってるんでしょ。あの文脈ではencodingなしでってこと
だから(ちょっと苦しい)…
で、>>965さんの疑問には、スクリプトと対象ファイルと
端末の文字コードが同じなら「はい」、そうでなきゃ、
STDIN=>'euc-jp', STDOUT=>'shiftjis'などを組み合わせなきゃ
化けるよというのが答えか。
0968nobodyさん
2006/01/14(土) 15:10:11ID:???平仮名すべてとカタカナすべてにマッチさせるのは
$s =~ /[あ-ん]|[ア-ン]/; ですか?
それとも
$s =~ /[あ-ん]|[ア-ン]/; ですか?
0969nobodyさん
2006/01/14(土) 22:33:31ID:???0970nobodyさん
2006/01/14(土) 23:10:54ID:???0971nobodyさん
2006/01/15(日) 00:17:54ID:???0972nobodyさん
2006/01/15(日) 02:59:40ID:4XZbfZj+エンコードとかしてない。
0975nobodyさん
2006/01/18(水) 02:18:59ID:4mLPDnIV禿→\x00\x00
で評価されてるわけか?
やば…なおさな…。
0976nobodyさん
2006/01/18(水) 11:59:38ID:???~ は何を表すものでしょうか?
0977nobodyさん
2006/01/18(水) 12:38:10ID:???http://httpd.apache.org/docs/2.2/ja/mod/core.html#files
0978nobodyさん
2006/01/20(金) 05:37:59ID:???サーバを移転しましてーその対応を.htaccess中でRedirectMatchにて付けようとしています
http://AAA.HOST/CCC/modules/kif/index.php/display.php?kid=123456
↓
http://BBB.HOST/CCC/index.php?cmd=kif&cmds=display&kid=123456
に飛ばしたいのですが
RedirectMatch /CCC/modules/kif/index\.php/display\.php\?kid=(.*)$
http://BBB.HOST/CCC/index.php?cmd=kif&cmds=display&kid=$1だと
引っ掛かりもしません><
ご教授頂ければ有難いですーm..m
0980nobodyさん
2006/01/20(金) 08:23:23ID:???RewriteEngine on
RewriteRule /CCC/modules/kif/index\.php/display\.php$ \
http://bbb.example.com/CCC/index.php?cmd=kif&cmds=display&%{QUERY_STRING} [R]
0981nobodyさん
2006/01/20(金) 09:57:31ID:???ありがとうですー
が下位の階層が全部403になりますorz
スレ違いっぽいんで、RewriteRuleの勉強してきますー^^
レス数が950を超えています。1000を超えると書き込みができなくなります。