トップページ⇒php
1001コメント313KB

正規表現道場@2ch Part3 s/煽り|荒らし/あぼーん/g

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん03/11/19 21:42ID:Kst3Nn4S
Perlに限らずスクリプト系言語で大活躍の正規表現。
このスレは有用そうな正規表現を紹介したり、どう表現したらいいかわからないときに質問をしたりするためのスレッドです。
質問するときは使用言語や得たい結果をなるべく詳しく書きましょう。

註:& や " を書くときには、&amp " と描いておきましょうね。

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/
0091nobodyさん03/12/19 06:15ID:z9mYPuUz
ところが全て行末ではないんです。
0092nobodyさん03/12/19 08:15ID:tSEWBAlW
$perl -pe 's/(?<![\.\d])(X\d+)(?![\.\d])/##$1##/g;' >>80

小数点を含まない数値にマッチさせるパターンを教えて下さい。

X25.125
X12.1
X78.
でなく
##X25##
##X789##
にマッチさせたいんです。 
御多忙中の所、誠に恐縮では御座いますが、
御教示いただければ幸いです。
00933903/12/19 10:20ID:???
今頃ですが・・・
自力で検索したサイトは難しい所ばかりだった気がしたのですが、
>>1のリンク先を一通りち回って、今回は何とかなりました。
たぶん答えるのもアホらしい低レベルな質問だったんでしょうね。
スレ汚し失礼しました。
0094nobodyさん03/12/19 13:04ID:???
>92 いいかげんにしろやカス
0095nobodyさん03/12/19 16:38ID:???
>>92
おらよ。
/(?:^|[^\d\.])(\d+)(?:[^\d\.]|$)/
0096nobodyさん03/12/19 23:48ID:???
/(?:^|[\d\.])([1-9]\d*)(?:[^\d\.]|$)/
0097nobodyさん03/12/21 14:45ID:???
>>92
お前さんのレベルじゃ,
込み入った正規表現に手を出すのはまだ早いんじゃないか?
とりあえずわかりやすい代替手段でも使っておけ。

my $f = 'fs4.5s5d.af56.156asd';
my @res = ();
foreach ( split(/[^\d.]/, $f) ){ push( @res, $_ ) if(/^[\d]+$/); }
if(! scalar(@res) ){ print "no match!\n"; }
elsif( scalar(@res) > 1 ){ print "too much match!\n"; }
else{ print "matched:[$res[0]]\n"; }


0098nobodyさん03/12/21 23:40ID:qD9UdeKR
[サッカー][蹴球]96 ATLANTA OLYMPIC BS1総集編 日本1-0ブラジル 前園 カヌー オルテガ [110m08s DivX5].avi dgju9h3hNw 731,862,992 53de508adb8dc5d557c4d83efde22799
nyのキー情報(↑みたいなの)を正規表現で表すことできますかね?

ダウソ板のスレを全部取り込んで、
キー情報だけ抜き出してリストを作りたいです。
0099nobodyさん03/12/22 00:11ID:???
「みたいの」ってのが無理。
0100a03/12/22 01:56ID:???
>>98
もっとわかりやすく説明しろボケ
0101nobodyさん03/12/22 02:02ID:???
いいから放置しとけ
0102nobodyさん03/12/23 15:26ID:???
YahooXXXX.bbtec.net
からも
xxx.xxxx.ap.so-net.ne.jp
からもプロバイダ名を抽出させる方法を教えてください。
0103nobodyさん03/12/23 18:11ID:???
(\S+\.)?\S+\.[a-zA-Z]{2}[a-zA-Z]{2}
と
(\S+\.)?\S+\.[a-zA-Z]{3}

俺にはこんなものしか思いつかねーよ
0104nobodyさん03/12/23 19:52ID:???
>>102
ASAHIネットは www.ne.jp というホスト名を持っているわけだが、
ここからASAHIネットだと特定できる文字列をどうやって抽出しようかねぇ?

/
  (?:
    ([0-9A-Za-z](?:[\-0-9A-Za-z]*[0-9A-Za-z])?) # 3rd LD
    \.
  )?
  ([0-9A-Za-z](?:[\-0-9A-Za-z]*[0-9A-Za-z])?) # 2nd LD
  \.
  ([A-Za-z](?:[\-0-9A-Za-z]*[0-9A-Za-z])?) # TLD
  \.?$
/x
0105nobodyさん03/12/24 10:46ID:???
>>102
常にドメイン名からプロバイダが抽出できると信じている時点でダメ。
0106nobodyさん03/12/24 14:10ID:???
「ISP名」ではなくて、XXXXX.XXX.XXX.2ch.netの
2ch.netを取得したいと仮定して答えても問題ないかな?
0107nobodyさん03/12/24 18:42ID:???
>>106
とりあえずそれでいってみよー
0108nobodyさん03/12/24 21:51ID:???
>>106
いいっすよ!
0109nobodyさん03/12/25 19:44ID:???
適当に答えてみる。
[-0-9a-zA-Z]+.[-0-9a-zA-Z]+$
多分[-0-9a-zA-Z]じゃ足りないけどよく分からないので。識者よろ
0110nobodyさん03/12/25 19:55ID:???
適当すぎて・・・・・・・・・・・・・
0111nobodyさん03/12/25 20:51ID:???
>>109
<q cite="http://member.nifty.ne.jp/moha/rfc/rfc2396j.txt">
hostname = *( domainlabel "." ) toplabel [ "." ]
domainlabel = alphanum | alphanum *( alphanum | "-" ) alphanum
toplabel = alpha | alpha *( alphanum | "-" ) alphanum
</q>
=> >>104
0112nobodyさん03/12/25 21:14ID:???
hogehoge.XXX のように.の後が3文字なら
後ろから二つ目の.まで
hogehoge.ne.XXのように.の後が2文字なら
後ろから三つ目の.まで
.XXXのXがすべて\dならIPアドレスということで全部

とでもしておけばいいんじゃない?適当すぎですが
0113nobodyさん03/12/26 00:26ID:???
>>112
汎用 JP ドメインなんてのもあるがな。
0114nobodyさん03/12/26 01:23ID:???
>>112
適当どころじゃないわな
0115nobodyさん03/12/26 13:51ID:icJ7Wsig
#!/usr/bin/perl
$_ = << "EOD" ;
<test>
<test2>abc</test2>
</test>
<test>
<test2>def</test2>
</test>
EOD
/(<test>.+<\/test>)/s ;
print "$1\n" ;

テキスト中にある<test>文字列</test>を抽出したいと思ってるんだけど、
結果はこうなってしまう。
<test>
<test2>abc</test2>
</test>
<test>
<test2>def</test2>
</test>

結果はこうなって欲しい。
<test>
<test2>abc</test2>
</test>
こんな事も試したけどうまくいかず・・・
/(<test>(?!<test).+<\/test>)/s ;
何方か、お助け。
0116nobodyさん03/12/26 13:56ID:???
>>115
.+?
0117nobodyさん03/12/27 16:00ID:???
〜〜[hoge]〜[foo]〜〜〜[bar]〜〜[moge]〜

のような感じのテキストで[hoge]以外の[と]で囲まれている部分を消して

〜〜[hoge]〜〜〜〜〜〜〜

のようにしたいのですが、hoge以外の場合マッチという方法が思いつきま
せん。[^hoge]で無いことは確かなんですが・・。
文字列の否定の方法をどなたか教えてくださいませ。
0118nobodyさん03/12/27 17:39ID:???
>>117
s/\[(?!hoge)[^\]]*\]//g;
http://www.din.or.jp/~ohzaki/regex.htm
011911703/12/27 17:54ID:???
>>118
どうもです。
0120初心者スレ902,90403/12/29 16:56ID:???
Perl コーディング初心者質問コーナー Part30
http://pc2.2ch.net/test/read.cgi/php/1069846177/902-
こちらから誘導されてきました。
再度質問を書きます

あるスクリプトで

my $check = '(?:^|[\0-\200\240-\337])(?:[\201-\237\340-\374]{2})*';
$FORM{'FROM'} =~ s/($check)(?: | )+$/$1/g;

というのがあったのですが、"?:"というのはどういう意味なんでしょうか?
(このスレでも"?:"という表現が使われていますね)

ttp://www.kt.rim.or.jp/~kbk/perl5.005/perlre.html
ここも見てみたのですが、いまいち意味が分かりませんでした。
教えてもらえると助かります。
0121初心者スレ902,90403/12/29 17:03ID:???
わざわざ誘導されてきたのにすみません。自己解決しました。
ttp://www.kt.rim.or.jp/~kbk/regex/regex.html#GROUPING_NOBR
ここを読んだら分かりました。
0122nobodyさん03/12/31 18:09ID:9hwbEMBW
rubyで
/#{str1}/.match(str2)
としたときstr1のメタ文字を通常の文字としてマッチさせたいのですがどうしたらいいですか?
0123nobodyさん04/01/01 00:08ID:???
>>122
Regexp.escape(str1) か Regexp.quote(str1)
0124nobodyさん04/01/01 00:51ID:???
>>123
thx
0125nobodyさん04/01/07 22:03ID:3+H2s8ZL
<dt>[名無し]さん(bin+cue).rar<>sage<>03/12/30 00:57 ID:St9M3KSl<dd>2 <br>
<dt>クソスレみっけ<><>03/12/30 00:57 ID:o9NEl4Ao<dd>じしんないから3で <br>

とあって、空タグの<>間にある文字列を

<dt><a href="mailto:sage">[名無し]さん(bin+cue).rar</a> 03/12/30 00:57 ID:St9M3KSl<dd>2 <br>
<dt><a href="mailto:">クソスレみっけ</a> 03/12/30 00:57 ID:o9NEl4Ao<dd>じしんないから3で <br>

のように<a>に内包させたい場合どうしたらよいでしょうか
テキストエディタは秀丸を使っています
0126nobodyさん04/01/07 22:21ID:???
>>125
置換ダイアログで
検索: <dt>\f[^<]*\f<>\f[^<]*\f<>
置換: \0<a href="mailto:\3">\1</a>
012712504/01/08 00:00ID:???
>>126
どもです、バッチリでした
もすこし勉強してきま
0128nobodyさん04/01/08 11:30ID:A5R/iNdF
PHPでHTMLを埋め込める掲示板スクリプトを作ってますが

<…>となっている不等号はHTMLタグとみなして、そのままにしておき
それ以外のHTMLタグとみなせない不等号を&lt;と&gt;に置き換えて
HTMLタグ内にない”と&をそれぞれ&quot;と&amp;に変換するように
正規表現を書きたいのですが色々書き直して試してますが
思い通りに動作しなくて困ってます。
どのように正規表現を書けばよいか知恵を貸してください。お願いします。

<…>の形になってない不等号を&lt;と&gt;に置き換える作業は今は
以下のようになってます。

$message = @ereg_replace("<(([^>]|\n)*)<", "&lt;\\1&lt;", $message);
$message = @ereg_replace("<(([^>]|\n)*)", "&lt;\\1", $message);
$message = @ereg_replace("(([^<]|\n)*)>", "\\1&gt;", $message);
0129nobodyさん04/01/09 07:37ID:???
>>128
preg使えよ…
0130 ◆MbpwKgPmhw 04/01/13 18:01ID:???
$ENV{'USER_AGENT'}で得られる文字列から、ブラウザ名とバージョンを抜き出す関数を作っています。
正規表現のせの字もわからんような状態から何とかあちこち検索かけてここまで作りました。
しかし、まだ正規表現のありがたみが足りない気がして、不満です。
よければもっと要約できる点、あるいは不備な点の指摘をお願いします。ちなみに、書き込みのためにここでは全角でインデントいます。コピペの際にご留意下さい。
#-----------------------#
# UA一般名化         #-----------------------------------------------------#
#-----------------------#
# 引数は、($ENV{'USER_AGENT'})
sub envUa2uaName{
 my ($UA) = $_[0];
 if($UA =~ /MSIE/){
  $UA =~ s/(.){0,}MSIE ([0-9]{1,}(\.){0,}[0-9]{0,})(.){0,}/InternetExplorer $2/;
 }
 elsif($UA =~ /Opera/){
  $UA =~ s/(.){0,}Opera(.)([0-9]{1,}(\.){0,}[0-9]{0,})(.){0,}/Opera $3/;
 }
 elsif($UA =~ /Safari/){
  $UA =~ s/(.){0,}Safari(.)([0-9]{1,}(\.){0,}[0-9]{0,})(.){0,}/Safari $3/;
 }
 elsif($UA =~ /Netscape/){
  $UA =~ s/(.){0,}Netscape(.)([0-9]{1,}(\.){0,}[0-9]{0,})(.){0,}/Netscape $3/;
 }
 elsif($UA =~ /Firebird/){
  $UA =~ s/(.){0,}Firebird/Firebird/;
 }
 elsif($UA =~ /^Mozilla/){
  $UA =~ s/Mozilla\/([0-9]{1,}(\.){0,}[0-9]{0,})(.){0,}/Mozilla $1/;
 }
 $UA =~ s/([a-z A-Z 0-9]{0,})\/([0-9]{1,}(\.){0,}[0-9]{0,})/$1 $2/g;
 return $UA;
}
0131130 ◆MbpwKgPmhw 04/01/13 18:02ID:???
>>130 =~ s/インデントいます/インデントしています/;
0132nobodyさん04/01/13 18:12ID:???
DoCoMoは?
0133nobodyさん04/01/13 18:53ID:???
>>132

( ゚д゚)ハッ!
そう言えば忘れてました・・・
0134nobodyさん04/01/13 19:00ID:???
j-phoneとvodafoneとauも忘れないでね。
0135130 ◆MbpwKgPmhw 04/01/13 19:03ID:???
>>134
サンプルデータが無い・・・・
UAが分からないと正規表現の書きようがない・・・
0136nobodyさん04/01/13 19:07ID:???
そんなものいくらでもころがってるだろう
0137130 ◆MbpwKgPmhw 04/01/13 19:08ID:???
>>136

スマソ
0138nobodyさん04/01/13 19:46ID:???
ちなみに俺はWin2000&IE6だが、UAはMozilla/5.0 (Macintosh; N; PPC; en-US; m18) Gecko/20000929 Netscape6/6.0b3となってる。
0139130 ◆MbpwKgPmhw 04/01/13 20:13ID:???
>>138

環境変数をイジってる人のまでは対応仕切れないのでそれはそのまま表示します・・・。
0140未承諾広告※ ◆aiY4htt2.2 04/01/13 21:12ID:???
UA なんて偽装し放題なんだからそれからブラウザ名を判定しても何の有り難みもねーよ。

と聞こえてくるのは幻聴でしょうか。。。
0141nobodyさん04/01/13 22:04ID:???
俺にはドリキャスのうめき声が聞こえる。。。
0142nobodyさん04/01/14 08:50ID:???
そういえばpipin@はまだ生き残ってるのか?
0143nobodyさん04/01/15 16:48ID:???
$text = "正規表現で、or にあたるものはないでしょうか? ";
mb_ereg("正規表現|ない|or|しょう",$text);
//"|" は二つだけですよね?

こんな感じで、複数の文字列にヒットする方法を知りませんか?
eregでもpreg_matchでもどちらでも可能であれば教えて下さい。
0144nobodyさん04/01/15 17:23ID:???
H"は?
0145nobodyさん04/01/15 17:32ID:???
>>143
意味不明
0146nobodyさん04/01/15 19:03ID:???
>>143
preg_match('(正規表現|ない|or|しょう)', $text);
0147nobodyさん04/01/15 19:56ID:???
>>143
そのコードのままでは意図通りに動いてないの?
0148nobodyさん04/01/15 21:38ID:Z1eTG8w5
210.153.84.0/24 とか 210.134.83.32/27 とかの表記での
アクセス制限はPerlではできないかと思いますが、
これらを正規表現にてなんとか綺麗にかけないもの
でしょうか。

もしも良い案がございましたらご教授ください。
0149未承諾広告※ ◆aiY4htt2.2 04/01/15 21:42ID:???
>>148
&
0150nobodyさん04/01/15 21:44ID:???
>>148
サブネットマスクで表すアドレス範囲がわかれば簡単なことだろ
0151nobodyさん04/01/16 04:47ID:???
>>149
たった一文字なのに的確なマジレスだな
0152nobodyさん04/01/16 17:53ID:???
空行の上の1行にマッチするということは、正規表現でできますか?

あいうえお\r\n
かきくけこ\r\n
\r\n
さしすせそ\r\n
たちつてと\r\n
naninuneno\r\n
\r\n
歯皮膚へ補\r\n
\r\n

かきくけこ\r\n、naninuneno\r\n、歯皮膚へ補\r\nにマッチして欲しいんですが・・・。
0153nobodyさん04/01/16 20:31ID:???
>>152
([^\n]+\n)\r\n
\1とか$1で参照で出来ると思う。
0154nobodyさん04/01/16 20:49ID:???
こんなんは動きませんか。perl。
(?:\n?)[^\r\n]+\r\n(?=\r\n)
0155未承諾広告※ ◆aiY4htt2.2 04/01/16 22:03ID:???
\b(.+?)\r\n\r\n
手抜きかも。。。
0156nobodyさん04/01/16 22:45ID:???
/(.+?¥x0D?¥x0A)¥x0D?¥x0A/gs
015715204/01/17 00:12ID:???
>>153-156
皆様、レスありがとうございます。

空行の上の行を取得できました。
勉強不足でした、精進します。
ありがとうございました。
0158nobodyさん04/01/18 20:18ID:???
PHPで、
「(文字列 ほげ か、文字列 ふが)が先頭にある文字列以外にマッチする」という正規表現はどのようにすれば記述できるでしょうか?
/(([^ほ][^げ])|([^ふ][^が])).*/
かと思ったのですが、違うようです……
0159nobodyさん04/01/19 00:42ID:???
>>158
逆に、「〜にマッチしなかったら」という処理にした方が楽。
0160nobodyさん04/01/19 14:48ID:UUNY3/Bm
perlですが、
$domainにドメインが入っていて、(仮にyahoo.co.jp)
$hogeに入力されたURLが入っているときに
$hogeがルートディレクトリから2つ以上掘り下げた場所にあるファイルのURLなら、ある処理をする
ということをしたいのですが、頭の中ではまとまっていてもどのようにすればいいのかが・・。
ちょっと解りにくいと思うので、具体的に$hogeが何ならokで何ならNGかを↓
○ http://yahoo.co.jp/
○ http://yahoo.co.jp/xxx
○ http://yahoo.co.jp/xxx/
○ http://yahoo.co.jp/xxx/top.html
× http://yahoo.co.jp/xxx/yyy/
× http://yahoo.co.jp/xxx/yyy/zzz/...../foo.html
・
・
こんな感じです。
ネックとしてはディレクトリの時「/」をつけてる場合とそうでない場合がある。
index.htmlなどを書く場合とそうでない場合がある。
というところでしょうか。

で、マッチした場合に処理するという形で考えてるんですが、
if ($hoge =~ /^https?:\/\/\Q$domain\E\/([^\/]+)\/※/) { 処理 }
※の部分にスラッシュがあるか、なくてもドットがなければマッチ
という風にすればいけるのかな?などと考えているのですが、
どのように書けばよいのかが解りません。また本当にそれで実現できるのかも「?」です。
わかりにくい質問だとは思いますが、教えていただけませんでしょうか。
0161nobodyさん04/01/19 15:22ID:???
>>160
厳密なこと言うと /xxx/yyy がディレクトリかファイルかは、
実際にその URL にアクセスしてみないとわからないので、
どっかで妥協しないといけないと思う。

で、 >>160 のような前提でマッチするとするなら、こんな感じかな。
$hoge =~ /^https?:\/\/$domain\/([^\/]+)\/([^\/]+\/|[^\/\.]+$)/
0162nobodyさん04/01/19 15:33ID:???
>>161
有難うございます。確かに厳密にはそうですが、まぁここではそこまで突っ込まないことにします。
で、少し書いていただいたソースでテストしてみましたが、おそらく期待通りのようです。
後でまたテストしてみます。有難うございました。
016315804/01/20 00:19ID:???
>>159
プログラム自体が「設定ファイルに記述した正規表現(のリスト)にマッチしたら」っていう処理なんで、
>逆に、「〜にマッチしなかったら」という処理にした方が楽。
とは分かってるんですが、何とかならない物かと。

……あや、PHPでも '?!' は使えるのか。ってことは、
/^(?!ほげ).*/
で、「文字列 ほげ が先頭にある文字列以外にマッチ」になるのか?
としても、
/^((?!ほげ)|(?!ふが)).*/
じゃないよなぁ……。
0164nobodyさん04/01/20 03:08ID:???
boolを反転させればいいだけ。正規表現使う必要も無し。
0165nobodyさん04/01/20 03:48ID:???
>>163
何の設定ファイルか興味津々。
0166nobodyさん04/01/20 04:05ID:???
>>163
アホですか?
0167nobodyさん04/01/20 08:28ID:???
アホって言うか、いわゆる初心者ってやつです。おまけに自分で調べない、人に聞くことしか出来ないときてますから手に負えません。
0168nobodyさん04/01/20 17:57ID:???
みたこと無い人はPHP質問スレをちらっと訪れてみることをお勧めします。
長期滞在は精神衛生上よろしくありませんので、あくまでピーピングってください。
016915804/01/21 03:02ID:???
>>164-166
申し訳ないです。数時間色々試して、「正規表現でそういうのは無理」
と思いつつもつい、知ってる人がいれば良いな程度に書き込んでしまいました。
(「無理」って思ったんなら諦めろよ、俺。)

処理の方いじってみる事にします。(とりあえず、当面質問スレには出向かない方向で。)
ありがとうございました。
0170nobodyさん04/01/21 06:51ID:???
(「無理」って思ったんなら諦めろよ、俺。)

気持ち悪いです。
0171nobodyさん04/01/21 07:45ID:???
気持ちいいです。
0172nobodyさん04/01/21 15:39ID:???
>>169
preg_match('/(?:(?!^(foo|bar)).)*/', $str, $arr); if ($arr[0]) do;

これが正規表現でやることか?
つーか>>1のサイトくらい見ろよハゲ
0173nobodyさん04/01/25 15:45ID:???
perlを使っています。
<a href="#epigraph">▲</a> <a href="#D_20040124">▼</a>
を、
<a href="#D_20040124">▲</a> <a href="#epigraph">▼</a>
と、属性値だけ入れ替えるにはどうしたらよいのでしょうか?(属性値は可変です)

正規表現は苦手で、いくら考えても判らなかったので……。
0174nobodyさん04/01/25 16:16ID:???
/(<a href="\#)([^"]+?)(">▲<\/a> <a href="\#)([^"]+?)(">▼<\/a>)/$1$4$3$2$5/gi

こういうことなんかな? 意図がわからんからめちゃくちゃ適当なんだが。
0175nobodyさん04/01/25 16:27ID:???
>>174
できました! そっか、こういう風にすれば良かったのか……。
今度からは自分でできるように、正規表現についてしっかり勉強しようと思います。
ありがとうございました。
0176nobodyさん04/02/03 02:35ID:dCMf0k2c
ホッシュ
0177nobodyさん04/02/09 22:07ID:9171cO3S
IPアドレスの正規表現で
a.b.c.d/8
とか
a.b.c.d/32
ってどういう意味なんでしょうか?
誰か教えてください…
0178nobodyさん04/02/09 22:12ID:???
>>177
正規表現じゃなくてサブネットマスクだろ
ぐぐれ
0179nobodyさん04/02/10 18:53ID:???
めっちゃ簡素な質問で申し訳ないのだが、
PerlでHTMLタグを取り除く処理を行う場合、

s/<.*?>//g;
と書いている場合と、
s/<[^>]*>//g;
と書いている場合がありますよね?
大抵のところで「<.*?>は遅い」とかかれているのですが、
実際どれくらい処理効率が違うのでしょうか
0180nobodyさん04/02/10 18:56ID:???
すみません、すごく初歩的な質問なんですけど、
いくつか並んだ単語の中の、真ん中の単語だけを検索するには
どういう正規表現を使ったら良いのでしょうか?

<item name="アニメA.Aスレッド 13th session " category="AA" board="AAサロン"
<item name="アニメA.Aスレッド 12th session " category="AA" board="AAサロン"
<item name="アニメA.Aスレッド 11th session " category="AA" board="AAサロン"

と並んでいるもののうち、【アニメA.Aスレッド xxth session】だけを検索したいのですが可能でしょうか?

いろいろ検索しつつ試行錯誤をしていますが、どうしても分かりません。
どなたかいらっしゃいましたら、教えて頂けないでしょうか?
0181nobodyさん04/02/10 20:26ID:???
>>179
自分でベンチマークしてみる

>>180
21st 22nd 23rd ってことになるかな?
0182nobodyさん04/02/11 05:51ID:???
/アニメA.Aスレッド [0-9]{2}th session/
0183nobodyさん04/02/11 21:58ID:???
coffeeとかballoonみたいに、
3・4文字目が同じ、5・6文字目が同じような単語をマッチさせる正規表現を教えていただけませんか?

○×△△□□ みたいな形式。1・2文字目はなんでもOK。7文字目以降に何がきてもOK。

sedでおねがいします。
0184nobodyさん04/02/11 22:18ID:???
/..(.)\1(.)\2/
0185nobodyさん04/02/11 22:24ID:???
それtってPerlじゃないんですか・・・?
0186nobodyさん04/02/11 22:33ID:???
/..\(.\)\1\(.\)\2/
0187nobodyさん04/02/12 01:00ID:???
>>185
あんたは何処の誰
0188nobodyさん04/02/12 01:23ID:???
サンタはホモのひげ
0189nobodyさん04/02/12 01:38ID:???
/^(..(.)\2|...(.)\3)/

こうか?
0190nobodyさん04/02/12 02:26ID:???
coffee
tattoo
balloon
saccees

あたりがひっかかればいいのか?
■ このスレッドは過去ログ倉庫に格納されています