正規表現道場 ..
[2ch|▼Menu]
237:nobodyさん
07/11/28 13:29:18 fpWBgokp
PHPで正規表現であれやこれやと苦戦してます。
で、正規表現チェッカー
 URLリンク(www.asterworld.com)
 という物をみつけて、こりゃ便利だ!と思ってたのですが
作成した正規表現を preg_replace に設定してもマッチしてくれません。
そんなに方言があるとも思えないのですが...

C#2005の正規表現のようなのですがPerlの正規表現と何がちがうのでしょうか。
C#2005の正規表現をPerlの正規表現に変更するには無理なのでしょうか。
Perlの正規表現を作成するようなソフトはあるのでしょうか?

恐れ入りますがどなたか教えてください 頭がゴチャゴチャしてきて..

238:nobodyさん
07/11/28 15:10:44
もっとかなり基本的なところで勘違いしているんではないかと想像。
まずは、これ以上ないってくらい単純な正規表現で挙動を比較してみて、
そこから順次複雑な正規表現にしていって差異を見てみては。

239:237
07/11/28 15:41:05
ネットで調べても、どの言語の正規表現なのか今ひとつ判らないので
取り合えずアマゾンで本を注文しました。
言語ごとの差が判るようなものがあれば...


240:238
07/11/28 15:48:56
C# なら .NET なんだろうけど、「詳説 正規表現 (第2版)」には差異などが載ってる。
それで、ぱっと見で、基本的なところは Perl と .NET とで大した差は無いと思う。

241:237
07/11/29 13:36:57
「正規表現の達人」って本を手にして今、読んでますが、
お昼食べた後なんで眠くて眠くて フワァァ(/ 0 ̄)~゜
がんばってみます。。

242:nobodyさん
07/12/11 20:35:33
すみません、ヘルプをお願いします。
PHPにて、特定の画像ファイル名を持つ<IMG>タグを抽出するという正規表現を作りたいのですが
上手く行かなくて困っております。

どなたか、お助けください。。。

243:nobodyさん
07/12/12 01:18:37
>>242
もちっとくわしく。src属性以外に属性をもつのかとか。
多分alt属性がついていそうだけど。

preg_match('/<img .*?src=(["¥'])特定のファイル名を表す正規表現¥¥1 .*?>/', src);

とかか。今適当に作ったのでうまく動くかどうかはわからんけど

244:nobodyさん
07/12/19 16:38:31 H15tWjcK
PHPのpreg_replaceなんですが、おたたすけ願います。
特定の文字列で囲まれた文字列を変換しない正規表現を教えてください。
たとえば
preg_replace("/aaa/", "[\1]", "aaa aaa aaa aaa aaa")
だと結果は "[aaa] [aaa] [aaa] [aaa] [aaa]" になりますが
preg_replace("/aaa/", "[\1]", "aaa{{{aaa aaa aaa}}}aaa")
となっていたときに
"[aaa]{{{aaa aaa aaa}}}[aaa]" という結果を取得したいんですが
思うように出来ません。

答えを直接出なくてもいいのでヒントだけでも教えてください。


245:nobodyさん
07/12/19 18:16:44
>>244
後読み表明は量指定子を含められないから、もしpreg_replaceだけでやろうとするなら、
それ以外の部分を食わせておいて置き直すという、やや気持ち悪いことになると思う。

例えばこんなふうに
preg_replace('/(.*?(?:\\Q{{{\\E.*?\\Q}}}\\E.*?)*)(aaa)/', '$1[$2]', "aaa{{{aaa aaa aaa}}}aaa");

分解してから対象の部分だけ処理する等の方法も検討した方が宜しいかと。

246:nobodyさん
07/12/19 18:44:19
大田区ホームページ:職員の不祥事について(処分の公表)
URLリンク(www.city.ota.tokyo.jp)

当区職員が傷害の容疑で逮捕されるという事件につきましては、新聞等での報道やホームーページで公表したところですが、今回、事実関係が明らかになり、以下のとおり懲戒処分を行いましたので公表いたします。
 区民の皆様の信頼を裏切ることとなり、誠に申し訳ありません。あらためて、お詫びいたします。

懲戒処分とは
 職員が一定の義務違反を犯した場合に、公務の規律と秩序を維持することを目的として、その責任を追及するために制裁として行う処分です。
 大田区では懲戒処分の公表基準に基づき、免職処分をした場合や特に区民の関心が大きい事案又は社会的影響が大きい事案について、個別の懲戒処分を公表します。
(懲戒処分の制度の詳細は、大田区人事白書をご参照ください。)

処分発令日
 平成19年12月19日

被処分者氏名
 建築調整課 吉原 幸光

処分の内容
 停職3月

処分の理由
 一般非行関係(法令に違反し、全体の奉仕者たるにふさわしくない非行があったため)

事件の概要
 この職員は、平成19年11月16日(金曜日)、勤務時間終了後、東神奈川駅周辺で飲食した後、帰宅途中のJR京浜東北線川崎―蒲田間の電車内において、乗客男性に全治4週間の怪我を負わせる暴行を働き、傷害の容疑により蒲田警察署に現行犯逮捕されました。
 同職員は、東京簡易裁判所に起訴され、罰金刑を申し渡されています。

247:nobodyさん
07/12/22 08:43:52 KKfYoqPi
すみません、教えてください。
PHPで携帯電話に文字列を表示する際に、
電話番号の部分をteltoリンクにしたいと思い以下のように書きました。
$bodySTR = preg_replace('/([-0123456789]+)/', '<a href="tel:\\1">\\1</a>',$bodySTR);

当然ながらこれだと、「100円」や「〒123-4567」にも反応してしまいます。

そこで、
「03-1234-5678」「090-1234-5678」「03−1234−5678」等にマッチして
「100」や「123-4567」にはマッチしない正規表現は可能でしょうか?


248:nobodyさん
07/12/22 14:06:28
可能です

249:nobodyさん
07/12/22 16:17:35
/(0¥d+-¥d{1,4}-¥d{4})/
でどうよ

250:nobodyさん
07/12/22 17:39:05 6MoMAQ1+
perlの正規表現について質問です。
>>244の方と同じ様なものなのですが

"test <a href="URLリンク(test.jp)<)">[test]"
という形にしたいのですが、どのようにすれば宜しいでしょうか。

一度置換した後、<>タグ内の物は[]を外す方法も考えてはみたのですが、
思うように動作させる事が出来ず。ご教授の程、宜しくお願い致します。


251:nobodyさん
07/12/22 17:52:18
s/(<.*?>|test)/$1?$1:"[$2]"/ges

252:250
07/12/22 18:04:13
>>251
なるほど、どうも有難う御座いました!

253:nobodyさん
08/01/14 12:16:38 6AXqvVgD
時間(13:00:00〜18:00:00)までを正規表現であらわしたいのですが、

1[3-8]:[0-5][0-9]:[0-5][0-9]

という感じに今なっています
誰が見てもわかりやすいしこれでもいいのですが、もっと短い書き方はないものでしょうか?

[0-5][0-9]ここが反復なので、([0-5][0-9]:?){2}とか思いつくのですが、
これだと最後にコロンが入っててもマッチしてしまうので回避できるような書き方はないものかなぁと。

254:nobodyさん
08/01/14 13:51:53
1[3-8](?::[0-5]\d){2}

255:nobodyさん
08/01/15 02:35:00 HyHnFj45

私が小学生の頃、
日本中でノストラダムスの予言が大流行していた。
「1999年の7月に人類は滅亡する!」
という例のお騒がせ終末予言である。

大人になって社会に出て働きだして、
あくせくと忙しく日々を過ごしながら、
1999年は、
ありふれた日常の中であっさりと過ぎていった。
人類は滅ばなかった。

これからここで、
1999年に起こるかもしれなかった人類の壊滅的破局を、
誰にも知られずにこっそりと回避させた人たちがいた...
という設定で、
荒唐無稽なストーリーを描いてみたい。
無論、100%完全なフィクションである。

URLリンク(www5.diary.ne.jp)


256:nobodyさん
08/01/20 11:20:53 TPbCvsXG
/([^>|\+|\s]+)\s*([>|\+]?)\s*/g

この正規表現はどういうことでしょう?
何にマッチさせようとしているのでしょうか。
JavaScriptです。

257:nobodyさん
08/01/20 11:37:26
[]の中で|を使ってOR条件にしてるから書いた人は勘違いしてる

258:nobodyさん
08/01/20 12:50:55 TPbCvsXG
本来なにをしたかったんでしょうか・・・。

259:nobodyさん
08/01/21 16:00:34
PHPの正規表現についての質問です。
2chのdatを各要素毎にキャプチャしたいのですが、

preg_math_all('/((.*)<>)*/', $dat, $match);

と書いて実行すると全体が丸々$matchへ格納されます。
$datへは「 要素1<>要素2<>要素3<>要素4<>要素5 」という形式のデータが入っており要素5は1行目にのみ存在します。
また、各要素は空欄の場合もあります。

初歩的な質問で申し訳ありませんが、よろしくお願いします。

260:nobodyさん
08/01/21 16:01:39
>>258
こちとらお前さんにそれを聞きてえぐらいだよ。

261:nobodyさん
08/01/21 16:03:38
>>259
preg_split で "<>" で配列にばらした方が扱いやすいかも。

262:259
08/01/21 16:15:53
>>261
レスありがとうございます。
確かにphpには要素を分解する為の便利な関数が始めから用意されておりますが、今回はあえてpreg_matchを用いて自身で分解してみたく思います。
自分にはハードルが高い気もするので、手始めに要素5だけを取り出そうと挑戦してみたのですが、

/<>(.+)$/ と書くと要素3<>要素4<>要素5がキャプチャされてしまいます。
やはり当方の正規表現に対する解釈が根本的に間違っているのでしょうか。

連投になり大変申し訳ないのですが、こちらの質問へのみご回答お願いいたします。
>>259は回答を得ましても自分には理解の範疇を超えていると判断しましたので)

263:nobodyさん
08/01/21 19:42:35
[^<>]

264:259
08/01/21 20:27:24
自己解決しました

265:nobodyさん
08/01/21 22:14:14
>>264
どう解決したかくらいは書いてもバチは当たらなくってよ。

266:nobodyさん
08/01/30 11:50:28
perlのgrepで大文字小文字の区別をつけて検索したいです。
@hitlist = grep(/$search_word/i, @search_list);
これを、
@hitlist = grep(/$search_word/$serch_option, @search_list);
($serch_optionにはiやgを事前に設定)
こんな感じにしたいのですが、なんかいい案はありますか?
if文で分岐させるしかないですか?

267:nobodyさん
08/01/30 13:19:43
大小文字区別つけて検索したいならオプションなしで固定でいいでしょ
そこでgオプション使うケースなんてないでしょ

268:nobodyさん
08/01/30 16:28:40
>>266
質問が要領を得てないんだろうけど、
大文字小文字区別つけるかつけないかを切り替えたい、って話ではないかと。

どうすれば良いのかは知らないけど。

269:266
08/01/30 17:01:36
質問の要領が悪くて申し訳ありません。
正規表現のオプションをうまいこと制御できないかなと思いまして。
特に大文字小文字にこだわってるわけではないです。

270:nobodyさん
08/01/31 03:02:38
>>269

大小文字の違いを無視して検索したいときに、パターンの先頭に (?i) 埋めときゃいい。

$pat = ($icase ? "(?i)" : "") . $search_word;
@hitlist = grep /$pat/, @search_list; 

とか

 


271:nobodyさん
08/01/31 15:56:15
proxomitron の正規表現(?)が独自過ぎて、イライラしてくるんだが…

272:nobodyさん
08/02/25 06:25:28 PeKKba69
2008-03 発売(予定)
「詳説 正規表現 第3版」 (Jeffrey E.F. Friedl 著 / 長尾高弘 訳)
ISBN 978-4-87311-359-3 定価 5,040円


273:nobodyさん
08/02/25 12:38:04
高いね。今は Web で検索すればいいからねぇ…今更そんなの出して売れるのか。

274:nobodyさん
08/03/03 22:23:33 3LUWkmBW
質問です!
PHP 5.2.5で、<br>以外のタグ削除を下記のようにしたところ

do {
$res = str_replace( $result_tag[1], '', $res );
} while ( mb_ereg( '(<[a/][^>]+>)', $res, $result_tag ) );

所々で効いてません。
前のサーバー(PHP 4.4.4)では正常に動いていました。
よろしく御指南ください。

275:nobodyさん
08/03/03 23:15:55
>>274
初心者なので間違ってたらごめんなさい。

strip_tagsで、タグ除去と除外タグ指定が可能なはずです。

276:nobodyさん
08/03/04 02:59:10
>>275
ありがとう!
思い通りになりました。
感謝です。

277:nobodyさん
08/03/05 17:20:52
<a href="URLリンク(jumpres)">>>1</a>
<a href="URLリンク(jumpres)">>>34</a>

スレッドまとめサイトの作成においてアンカーのタグだけ外したいのです
よろしくお願いします

278:nobodyさん
08/03/05 18:23:39
>>277
実装言語が Perl と仮定して (Perl でなければ >>1 を読んでちょ) 、こんなかんじ?
s/<a href=".+?">(.+?)<\/a>/$1/g;

279:nobodyさん
08/03/05 18:52:35
ありがとうございます

280:nobodyさん
08/03/16 09:40:37
PHPの正規表現はバグバグなのでバージョンが違えば動作が変わる上に、難しいパターンになるとすぐ落ちる。

281:nobodyさん
08/03/16 12:34:04
嘘書くなよ。

282:nobodyさん
08/03/16 20:44:54
パターン修飾子にパラメータを渡して、長い文字列を検索するとボロボロ落ちる。常識だよ。

283:nobodyさん
08/03/17 06:09:10
rubyのutf-8判定とかもやばそうだね

284:nobodyさん
08/03/17 08:59:29
pcreのバグだね。
pcre-devのメーリングリストでもよんどいて損はない
URLリンク(www.exim.org)

285:nobodyさん
08/03/19 14:02:11 6LA3ff9b
初めて書き込みさせていただきます。

たとえば文字列が

{if(a)}
あああ
{if(b)}
いいい
{/if}
{/if}

と入れ子があったときはどのようにマッチさせたらいいでしょうか?
PHPでお願いします。

286:nobodyさん
08/03/19 15:32:59
入れ子のマッチは正規表現 (だけ) では無理。と憶えておくと良いことがあるらしい。

287:ジョアン
08/03/28 16:46:01 FsCFbn2K
perl の正規表現をPHPに書き直しているのですが、どうしてもわかりません。
Perlではマッチした前後を $` $' で取得できますがPHPではどうして取得するのでしょうか?


288:nobodyさん
08/03/29 12:12:17
つマニュアル


289:nobodyさん
08/04/12 11:24:34
見 れる

290:nobodyさん
08/04/13 12:03:16
>>287
括弧

291:nobodyさん
08/04/26 13:57:41
age

292:nobodyさん
08/05/04 23:26:54
オライリーの正規表現三版
ほしいけど高いね

293:nobodyさん
08/05/19 20:19:05
phpでhoge("****","*****");の****と*****を[1][2]に入れたいのですがどうすればいいでしょうか?

294:nobodyさん
08/05/23 20:19:21
AGE

295:nobodyさん
08/05/23 20:19:44
AGE

296:nobodyさん
08/06/05 16:44:59 0yepAPED
すみません、FC2ブログのIPブロック条件のために、正規表現を書かなければならなくなりました。
そこで、合っているか教えてくださいー。

IP 61.78.0.0〜61.85.225.225 をブロックしたいのです。

このための表現として、私のつたない知識を使って書いてみると

^61\.[78-85]\.[0-9]+\.[0-9]+

なのかなと思ってますが、あってますか?
どうぞよろしくお願いします。

297:nobodyさん
08/06/05 17:25:51
^61\.(?:7[89]|8[0-5])\.

こうじゃないかな

298:nobodyさん
08/06/05 18:12:26 0yepAPED
>>297
ありがとうございます。

^61\.[78-85]\. のところが、^61\.(?:7[89]|8[0-5])\.
って言う意味ですよね?
なるほど。78-85じゃダメなんですね。ありがとうございます!


299:nobodyさん
08/06/06 03:25:44
これが一番わかりやすい。以上

^61\.(78|79|80|81|82|83|84|85)\..*


300:nobodyさん
08/06/08 17:41:28
PHPで、1ページ分のHTMLのソースが$sに入っているとします。

ここで、この$sから特定のタグだけを削除したいのですが、うまくいきません。

例えば<meta 〜〜〜 />というタグが複数あったとして、これをすべて取り除いたソースを作りたいのです。

$s = eregi_replace("<meta.*?>", "", $s);

とやってみたのですが、$sが空になってしまうのです。

ご指南ください。

301:nobodyさん
08/06/08 22:40:27
2過去ログぐらい嫁という言葉は一見突き放しているように見えて
その質問の答えはこのスレの中にあるよという、ヒントを出しているわけで
まぁ、ツンデレなわけです。

302:nobodyさん
08/06/09 02:40:38
>>300
ereg は最短マッチの芸当はできない。
pregでもつかっとけ。


303:nobodyさん
08/06/09 06:50:27
>>300
'<meta[^>]*>'

304:nobodyさん
08/06/09 23:50:23
300です。

ありがとうございます!

そうなんです、最短マッチが動かないなぁと思っていて、まさかeregが
最短マッチできないとは思いませんでした。

pregでやって解決しました!!


305:nobodyさん
08/06/11 15:58:44
300と似てるかもしれないのですが
<a href="aa">11</a><a href="bb">22</a> こういう文字列があるとき
11と22だけを取り出したいと思い
preg_match_all("/<a(.*)>(.*)<\/a>/", 元, $test)
とやってみたところ、取り出せたのが
href="aa">11</a><a href="bb"と22になってしまいました。
?をつけてみてもうまくいきませんでした。

意図したように取り出したい場合どのように記述すればいいのでしょうか?
使用している言語はphpです。

306:nobodyさん
08/06/11 21:01:33
>>305
色々間違えてる。

まず、Aタグで囲んでる部分だけ抜き出すなら( )のペアは一個でいいはず。
次に?を使ってみたと言うが多分何か勘違いしてる。
300はわかってて最短マッチさせてるが305わかってないだろう?
*を?に置き換えたりしてないか?

307:nobodyさん
08/06/12 00:47:05 Hj50XmAm
JavaScriptで下記のようなデータを取得したいです。

hogehoge[1]→1
hogehoge[123]→123
hogehoge[1243][]→1243

[]の中身を取得したく、[]が2つあった場合は最初の[]の中身を取得します。
(ただし、2個目の[]は常に空です。)

hogehogeは任意の文字列で、[]の中身は何桁か分からない数字の繰り返しです。

以上ご鞭撻の程お願いします。

308:nobodyさん
08/06/12 08:16:53
>>307
スレタイ

309:nobodyさん
08/06/12 14:43:44
/\[([1234]+)\]/

310:nobodyさん
08/06/12 14:53:37
GJ

311:nobodyさん
08/06/28 08:39:36 9QUTsyON
PHP質問スレから誘導されてきました。

使用言語はPHPです。
以下のような変数があります。
$str = <<<EOM
あああ<br />
いいい<br />
ううう<br />
<!--S-->
えええ<br />
おおお<br />
<!--E-->
EOM;

このうち<!--S-->と<!--E-->で囲まれている<br />だけを削除したいのですが、
正規表現を使って綺麗に書けるでしょうか?
以下のように試したのですが、<!--S-->と<!--E-->が消えるだけでした。
$str = preg_replace("/<!--S-->([\W\w]+)<!--E-->/",str_replace("<br />","","\\1"),$str);
また、<!--S(E)-->で囲まれている部分は改行や半角英数字などが含まれる場合があります。
どなたかご教示いただけますでしょうか。よろしくお願いいたします。

312:nobodyさん
08/06/28 10:12:28
substr_replaceとstrposでできそうな気がするが

313:311
08/06/28 12:26:16
>>312
ありがとうございます、おかげで解決しました!

314:nobodyさん
08/07/02 18:58:36
,"/web/sendmail.php","10","10","2000"
こういう感じの文章の
,"2000"
のみ抽出したいんですが、どう書けばいいんでしょうか?

",".*[0-9]"$
だと"10","10","2000"まで拾っちゃうんです・・・。

315:nobodyさん
08/07/02 21:54:01
,\"[0-9]{4}\"

316:314
08/07/03 15:40:28
>>315
ありがとうございます。
確かに、それで例は拾えましたが、10と2000の部分は変動するんです。
桁も4桁だったり5桁だったりと様々なので、どうしたもんかなと・・・。

317:nobodyさん
08/07/03 15:46:05
,\"[1-9][0-9]*\"

318:314
08/07/03 15:53:01
>>317
ありがとうございます。

それだと ,"10","10","2000" まで拾ってしまいます・・・。
書き忘れていましたが、秀丸を使って一括選択しています。

319:nobodyさん
08/07/03 16:04:08
> 10と2000の部分は変動するんです

どう変動するんだよ
とり出したい場所の条件を日本語で書いてみ

>315を5桁にも対応させるだけなら
,\"[0-9]{4,5}\"

320:nobodyさん
08/07/03 16:05:46
>>318
,\"[1-9][0-9]*\"$


321:314
08/07/03 16:14:35
>>320
ありがとうございます!!!出来ました!!!
ありがとうございましたー。

>>319
ありがとうございます。
>>320で解決しましたが、極端な話1〜99999999の間で変動します。

322:nobodyさん
08/07/03 16:21:37
>>321
自然数と言え

323:nobodyさん
08/07/03 18:01:39
314 は情報小出し厨という事が解ったから、はやく死ね

324:nobodyさん
08/07/03 19:43:29
そもそも正規表現スレで「こういう感じの文章」なんて質問する時点で(ry

325:nobodyさん
08/07/03 20:01:56
抽象的な表現の質問はスルー

326:PHP
08/07/04 18:37:34 DM0Om0jz
PHP 正規表現

PHPの正規表現を勉強しているのですが、どうもうまくいきません。今回は一番簡単な正規表現をつくったのですが、どうやったらよいのでしょうか。

$h = '(名前)様の会員IDは(abc12)で、(5)番目に偉い方です。';

とあったら、名前、会員ID、番号を抜き出すには、どのようにしたらよいのでしょうか?
実際に()は使用しません。
また、$1 や $2 などを使いたいのですが、解説までできればお願いしたいです。
一応自分なりに考えました。
preg_match('/^*.([a-zA-Z0-9]){2}([0-9]+)','名前$2.ID$1 $3 番目に偉い');
()を使えば、2つマッチさせたいときなどに分けることができるのでしょうか?
(名前)様は(数字)
例:太郎様は5

このとき太郎様という日本語の文字を取得するには/^(+.)([0-9])$/

ここで名前は$1になり、数字は$2になるのでしょうか?
どのような時に$1や$2がどっちがどっちなのかは、どのようにしたらわかるのでしょうか?


長々した質問すいません。わかるかた教えてください。

327:nobodyさん
08/07/04 23:02:41
URLリンク(www.php.net)

取り敢えず、ここを *よく読んで理解* しろ。

328:nobodyさん
08/07/15 00:11:32 PMHjKbcP
質問させて下さい。
PHP5を使っています。
PHPの正規表現関数を使ってデータを取得しようと思っているのですが上手くいきません
<INPUT maxLength=20 name=id value="">
このような文字列を対象に、文字列「type」が含まれていない場合、後方の「maxLength=20 name=id value=""」
を取得したいのです。
全文に対して繰り返し取得したいのでpreg_match_allを使っています。

preg_match_all( "/<input (^type)[^<](.*?)>/is", $data, $matchs )
このように書いたのですがヒットしてくれません。
ドキュメントを見ると、特定文字に関しては[^a-z]のような書き方で対応できるのですが
文字列に関してはどのようにすればよいのでしょうか?
アドバイス頂ければ幸いです。
宜しくお願い致します。

329:nobodyさん
08/07/15 02:02:18
>>328

悪いこたいわないから二段階で抽出しとけ。
先読みを使えば書けないこともないけど、メンテできなくなるぞw


330:328
08/07/15 03:07:47 PMHjKbcP
>>329
レス有り難う御座います。
一段階目は
preg_match_all( "/(<input 「typeを含まない文字列にマッチするような正規表現」[^<]>)/is", $data, $matchs )
となると思うのですが、この部分はどのようにして書けばよいのでしょうか?
はじめ、二段階抽出も考えたのですが、結局
「typeを含まない文字列にマッチするような正規表現」がどうしてもわからずでした。

331:328
08/07/15 08:05:16
自己レスですが、夜通し色々試していたらいけました。
お騒がせしました。
取りあえず、該当範囲をpreg_match_allで取得後、preg_matchでtypeがあるか判定して二段回抽出しました。

332:nobodyさん
08/07/17 17:35:14 LcfXPY+p
<<が出てきて、その後初めて<br><br>が出るところまでのマッチ方法を教えてください。
pregです。

例えば、
hogehoge<<hogehogeh<br>oge<br><br>hogehoge<br><br>hoge<<hoge の
      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~    の部分です。

333:nobodyさん
08/07/17 17:53:17
<<.*?<br><br>

334:332
08/07/19 19:22:36
>>333
333おめです
なぜか、
hoge<<hogehog
eh<br>oge<br><br>hoge
だとマッチしないのですが。

335:nobodyさん
08/07/19 19:32:09
<<【¥S¥s】*?<br><br>

336:nobodyさん
08/07/20 09:34:06
できました。スマソ

337:nobodyさん
08/07/20 11:43:35
携帯絵文字をすべて
「絵」に置き換えすることはできないのでしょうか?
preg_replace("/[ - ]/","絵",$hoge);

338:nobodyさん
08/07/20 12:01:15 LU799vx+
>>337
キャリアは?

339:nobodyさん
08/07/20 12:03:54
>>338
SoftBankです。
余裕があればau,DoCoMoもですが。。。

340:nobodyさん
08/07/20 12:18:57
>>337
置き換える事はできるけど、正規表現だけでは無理

341:nobodyさん
08/07/20 12:27:01
>>340では、正規表現以外のものもOKなので、
教えていただきたいです。

342:nobodyさん
08/07/20 13:09:57
絵文字 変換 preg とかでググればいくらでも出てくるだろ。。。
ここで聞くより100倍速い。

343:nobodyさん
08/07/24 00:50:31 /c2OsNI4
example.htmlに書かれた
<table>

344:nobodyさん
08/07/24 00:58:57 /c2OsNI4
>>343
誤爆した。。申し訳ない。。
example.htmlに書かれた
<table>
<tr><th>2ちゃんねる</th><td>WebProg板</td></tr>
</table>
をphpのfopen, fgetsで1行ずつ読み取っています。
<tr>から始まった行の「2ちゃんねる」とWebProg板「WebProg」部分のみ抽出したいので
preg_replace("/^<tr><th>(.*?)</th><td>([a-zA-Z])</td>/i","$1$2",$str);
としたのですが、うまく抽出できません。
アドバイスをいただければありがたいです

345:nobodyさん
08/07/24 01:43:31
/^<tr><th>(.*?)</th><td>([a-zA-Z])</td>/i

正規表現が / で始まってるから / で終わることになるわけだけど、途中に</th>ってのがあるわけよ

m#<t[dh][^>]*>(.*?)</t[dh]><t[dh][^>]*>(\w+)#i
こんな感じになるかな

346:nobodyさん
08/07/24 23:33:27
デリミタの問題だけじゃないの?
preg_replace("/^<tr><th>(.*?)<\/th><td>([a-zA-Z])<\/td>/i","$1$2",$str);


347:nobodyさん
08/07/25 08:54:32
これって[a-zA-Z]、[a-zA-Z]+こうしなくてもいいの?

348:nobodyさん
08/07/27 01:11:32 sEx2Pn85
質問させてください。

サクラエディタに鬼車5.9.1を搭載して正規表現の勉強をしているのですが、手元にある詳説正規表現には

(<)?\w+(?(1)>)

このような例があり、<があれば>のマッチを試みる?ということができるみたいです。

ただ、鬼車はこの表現をサポートしていないみたいです。
URLリンク(www.geocities.jp)

同様のことを鬼車でも実現する方法ってあるのでしょうか?

349:nobodyさん
08/07/29 05:43:25
一番最初に出てきた「=」だけ反応するにはどうしたらいいでしょうか。
C#です。

350:nobodyさん
08/07/29 19:46:22
行頭の=という意味なら
/^=/m
だけどC#での正規表現の使い方は知らんので応えられん。

351:nobodyさん
08/08/06 01:01:06 hVakYDWk
PHP5覚えたての初心者です
スレ冒頭に()と(?:)の違いについて質問されてましたが
?:の意味ってなんですか?
わかりやすい解説ページなどもあれば教えてください。

352:nobodyさん
08/08/06 02:34:12
google

353:nobodyさん
08/08/06 19:40:10
>>351
?:じゃ?と:だよ。
(?:〜)で意味をなす。

354:nobodyさん
08/08/21 14:34:46 wSsr/o3s
質問させて下さい。
PHP5を使用しています。
文字列内にマルチバイト文字が一つでも含まれていれば真と言う正規表現を行いたいのですが
どのようにすればよいでしょうか?
ドキュメント等から調べてみて、
mb_ereg("[0-9a−zA−Zあ−んア−ン]", $str )
のようにしてみたのですが、これでは漢字にヒットしません。

アドバイス頂ければ幸いです。
宜しくお願い致します。

355:nobodyさん
08/08/21 14:44:38
単純に先頭ビットがおったってるかどうか見ればよくない?

[\x80-\xff]

356:nobodyさん
08/08/21 15:28:45
>>355
ありがとうございます。
やってみます。

357:nobodyさん
08/08/22 02:32:16
>>354
1バイト文字を列挙したのを否定すれば?

あと、文字コードによっては半角カナがマルチバイトだったり
そうじゃなかったりするんだけど、どうするのかな?


358:nobodyさん
08/08/25 10:35:16 P/JycA8t
htmlのタグを削除するのに、ふつうは
$line =~ s/<\/?[^>]+>//g; ----(1)

だと思うけど、どこかで見た方法では、

$line =~ s/<[^>]*(>|$)//g; ----(2)
となってた。これ動作は同じなのかな?(2)の意味がイマイチ分からない。

359:nobodyさん
08/08/25 20:52:33
(1)の \/? は書いても意味ない(/は[^>]に含まれるから)
(2)の (>|$)は、$lineという変数名から推測するに行単位で読み込んで逐次処理した
場合に、タグの途中で改行されていて>が見つからなくても行末まで削除する為?
でもそうしたら次の行で処理がうまく行われないしよくわからん

行単位だとタグ途中で改行される場合もあるから全部読み込んで一気に処理がいい
s/<.*?>//g;
s/<[^>]*>//g;
などなど・・

360:359
08/08/25 21:09:55
間違った、s/<.*?>//g;だと改行に対応できないから
s/<[\s\S]*?>//;みたいになるね

361:nobodyさん
08/08/25 21:28:12
いや、s使うだろ、普通。

362:nobodyさん
08/08/25 22:34:46
>>358
(2)はSGMLのショートタグの対応とか?
URLリンク(www.asahi-net.or.jp)

開始タグで前のタグを閉じる以外は、メジャーなブラウザは対応してなかったはずなので、
あまりこだわらなくてもいいと思うけど。

363:358
08/08/25 23:08:43
ありがとうございました。
改行文字の件とか、勉強になりました。
プログラム上では、どちらも同じ動作なので、気になってたもので。


364:nobodyさん
08/08/27 15:31:16 j0h2/LpG
正規表現で悩んでいます。
preg_match_all( "/((aaa|bbb|ccc).*?)(aaa|bbb|ccc|$)/is", $str, $maches )

このような形にて以下のような内容の繰り返し文を部分的に抜き出そうとしているのですが一部上手くいきません

---------------------
aaa
あいうえお

bbb
かきくけこ

ccc
さしすせそ
---------------------
上記正規表現では
aaa
あいうえお

bb
かきくけこ

cc
さしすせそ
と言うように一つ目以降のパターンマッチ文字列の先頭がbbやccとして一文字かけてしまいます。
本来はbbb、cccとちゃんとヒットさせたいのですが、これが行えません。
マッチ後の文字列ポインタを「三歩歩いて二歩下がる」のようにずらす事をするか、何か他のパターンマッチ構文を
書けばいけそうだと思うのですが、どうにもよい方法が思いつきません。
お力添え頂ければ幸いです。

365:nobodyさん
08/08/28 12:04:03
テストしてあげるからそのままコピペできるコードに書き換えてここに載せて

366:nobodyさん
08/08/28 18:14:41 Gzy07epa
あいうえお かきくけこ
さしすせ そたちつてと
なに ぬねの はひふへほ

この
「あいうえお」「さしすせ」「なに」
を太字に置き換えるにはどうすればいいですか?
(PHP)

$hoge = preg_replace("/^([^ ]+)/m","<b>\\1</b>",$hoge);

じゃうまくいきません。。。

367:366
08/08/28 18:25:55
すいません。
自己解決しました。

368:nobodyさん
08/08/28 18:44:08
解決策を書いて下さい。

369:nobodyさん
08/08/28 18:50:35
いやぁ

$hoge = preg_replace("/^([^ ]+)/m","<b>\\1</b>",$hoge);
$hoge = str_replace("<br>","<br>\n",$hoge);

って書いてましたwww

370:364
08/08/29 11:10:56 rNMP0NTC
>>365
レスありがとうございます。
もう一度考え直してみて書き直すとこのようなコードになりましたPHP5になります。

// 対象文字列
$str = "ABCDaaaEFGaaaaHIJKaaaaa";

// 正規表現
preg_match_all( "/([A-Z]+?aaa.*?)([A-Z]|$)/is", $str, $maches );

// 結果表示
$c = count( $maches[1] );
for ( $i = 0; $i < $c; $i++ ) {
print "=> {$maches[1][$i]}\n";
}

=> ABCDaaa
=> FGaaa
=> HIJKaaa

これを
=> ABCDaaa
=> FGaaaa
=> HIJKaaaaa

と表示させたいのです。
どうか宜しくお願い致します。

371:nobodyさん
08/08/29 11:57:14
以前と仕様変わってるようだけど・・・
詳しい仕様を書いてないからわからんけど

先頭が一つ以上の?英大文字がつづくだけマッチして
次にa小文字が3つ以上?つづくだけマッチ
を繰り返すってこと? isオプションがあるのはどういうことかわからんが
/([A-Z]+aaa+)/

372:364
08/08/29 12:11:28
>>371
・・・!申し訳ありません。
色々考えて試している内に頭が混乱して有らぬ方向になってしまっていたみたいです。
ちゃんともう一度考えて仕様も伝えられるようにしてから書き込ませて頂きます。
お手間をおかけいたしましてすみません><

373:nobodyさん
08/08/29 12:39:10
新入社員の研修みたいでほほえましい。

374:nobodyさん
08/09/01 15:52:31 ME+mffWY
使用言語はPHP4です。
PHPスレから誘導されて来ました。よろしくお願いします。

$str = '<a href="entry-1-18.html">りんご</a>  <br /><a href="entry-2-18.html">バナナ</a>  <br /><a href="entry-3-18.html">パイナップル</a>  <br />';

この文字列の中からリンク先の特定の数字とリンクテキストを抽出したく
preg_match_all ( "/"."<a href=\"entry-(.*)-18\.html\">(.*)<\/a>"."/i", $str, $match );
このような正規表現を書いたのですが、実行結果は

[0] => Array
(
[0] => <a href="entry-1-18.html">りんご</a>  <br /><a href="entry-2-18.html">バナナ</a>  <br /><a href="entry-3-18.html">パイナップル</a>

)

[1] => Array
(
[0] => 1-18.html">りんご</a>  <br /><a href="entry-2-18.html">バナナ</a>  <br /><a href="entry-3
)

[2] => Array
(
[0] => パイナップル
)

となります。

375:nobodyさん
08/09/01 15:53:28 ME+mffWY
下記のような実行結果にしたいのですが、正規表現の書き方を教えて下さい。よろしくお願いします。

[0] => Array
(
[0] => <a href="entry-1-18.html">りんご</a>  <br /><a href="entry-2-18.html">バナナ</a>  <br /><a href="entry-3-18.html">パイナップル</a>

)

[1] => Array
(
[0] => 1
[1] => 2
[2] => 3
)

[2] => Array
(
[0] => りんご
[1] => バナナ
[2] => パイナップル
)

376:nobodyさん
08/09/02 00:14:52
<a href="entry-(\d+)-18.html">(.*?)</a>

377:nobodyさん
08/09/02 09:20:23 gwaiq/Cc
>>376
うまく動きました
ありがとうございました

378:nobodyさん
08/09/02 17:55:54 IiWNBMxF
バイオインフォマティックスに詳しい方いらっしゃいますか?perlを使って突然変異前後における終止コドンのカウントをしたいんですが、初心者なのでまったく分かりません・・・(涙)


379:nobodyさん
08/09/02 18:31:39
先頭にhttpまたはttpを含まない
という正規表現はどう書けばいいでしょうか

380:nobodyさん
08/09/02 18:35:50
!/^h?ttp/

381:nobodyさん
08/09/02 18:37:44
^([^ht]|h([^t]|t([^t]|t[^p]))|t([^t]|t[^p])))

382:nobodyさん
08/09/02 19:18:50
>>380
>>381
助かりました
有難うございました

383:nobodyさん
08/09/03 09:02:07
^([^ht]|h([^t]|t([^t]|t[^p]))|t([^t]|t[^p])))

だとhとかttにマッチしない罠。

^($|[^ht]|h($|[^t]|t($|[^t]|t($|[^p])))|t($|[^t]|t($|[^p]))))

普通は380のようにするけどな。

384:nobodyさん
08/09/04 10:49:47
^p^

385:nobodyさん
08/09/04 10:50:59
^w^

386:nobodyさん
08/09/04 19:48:29 ZxHTo/La
URLリンク(codezine.jp)
こんな問題集を見つけたんだが
正規表現道場に近いな

387:nobodyさん
08/09/04 21:53:09 AVvRqwBM
$が肯定先読みというのは目から鱗。

388:nobodyさん
08/09/17 17:44:57 TGrFERMS
質問させてください。
OSはubuntu8.04で正規表現を勉強し始めの者です。

電話番号と郵便番号が混在しているテキストファイルから郵便番号だけ
抽出するという条件なんですが、

郵便番号はxxx-xxxx(xは0-9の数字)、電話番号はxx-xxxx-xxxx(xは0-9の数字)
で、grep -E [0-9]\{3\}-[0-9]\{4\} とやっても電話番号も全て抽出されてしまいます。
どこが間違っているのでしょうか。

389:nobodyさん
08/09/17 17:54:16
その正規表現だと電話番号にもマッチしちゃうからね。

具体的には、

xx-xXXX-XXXX

の大文字Xであらわしたところ

まあ宿題なんだろうからもうすこし良く考えましょう。

390:nobodyさん
08/09/17 19:24:47
>>389
grep -E ^[0-9]{3}-?[0-9]{4}$
でうまくいきました。ヒント有難うございます。

391:nobodyさん
08/09/22 18:03:26
質問です。
下記のような配列の中から、
(2)〜(4)までのみを抽出したいと思っています。

 (1) testa@hoge
 (2) _testb@hage
 (3) _testc@noge
 (4) _testd@nage
 (5) _teste@n_ge

ルールとしては、
 ・頭に[_]が付いている事、
 ・@の後ろに[n_]が付いていない事
です。上記前提で下記のように書いたのですが、
これですと(2)しか抽出されませんでした。

 $test =~ /^_.*@[^(n_)]/

@の後ろの正規表現が悪いのだと思うんですが、
この場合どのように書けばいいんでしょうか。
ご教示お願いしますm(_ _)m

392:nobodyさん
08/09/22 18:09:42
>>391
それじゃ文字クラスだよ。こういうときは否定先読みだろ。

393:nobodyさん
08/09/22 18:13:12
/^_\w*\@\w+$/ and !/\@n_/

先頭_と@の間はどんな文字でもいいのか、@以降はどんな文字でもいいのかとか
詳しいルールはわからないが、素直に分けたほうがいいと思う

394:nobodyさん
08/09/22 18:18:30
>>392-393
ありがとうございます!
とりあえず、>>392さんの方法で抽出できました。

$test =~ /^_.*@(?!n_)./

ありがとうございました。

395:nobodyさん
08/09/25 14:22:28 bEreCYy4
使用言語はPHP5です

html内のimgタグの記述部分をxhtmlにするために最後にスペースとスラッシュを付け加えたいと思い
以下の置き換えを行い成功したのですが、

$html = preg_replace('{<img (.*?)>}' ,'<img $1 />' ,$html);

元々imgタグ内にスペースとスラッシュが最後に入っているのもありますので、それ以外ということで

$html = preg_replace('{<img (.*?)^\/>}' ,'<img $1 />' ,$html);

このように記述してみましたが、これですと全部のimgタグに置き換えが効かなくなりました
どういう記述をすればよいのでしょうか?



396:nobodyさん
08/09/25 14:30:11
/<img (.*?[^\/])>/

397:nobodyさん
08/09/25 14:38:21 bEreCYy4
>>396
動きました
素早い回答ありがとうございました

398:nobodyさん
08/10/07 01:09:40
対象が

<a href="test/index.html">あああ</a>
<a href="URLリンク(hogehoge1.com)<)

だけを取り出すにはどうすればよいのでしょうか?

使用言語はPHP5です。

preg_match("/<a href=\"(.*)\"\>.*/",$str,$m);

ではtarget="_blank"が残ってしまい期待通りの結果が得られません。
最短一致というのが原因かとおもい

preg_match("/<a href=\"(.*)\"{1}?\>.*/",$str,$m);

としましたが駄目でした。
アドバイスよろしくお願いいたします。

399:nobodyさん
08/10/07 01:57:33
/<a\s.*?href=\"(.*?)\"/is

400:nobodyさん
08/10/07 21:57:53
>>399
無事期待通りの結果が得られました!
ありがとございました!

401:nobodyさん
08/10/09 19:29:23
PHP5で使います

$numには、

+数字
-数字
数字

というようなパターンの時のみマッチさせたいです
数字のところは 0〜999999999までの値が入ってきますが、0以外の時に頭に0がある場合0123とかは除外したいです
試行錯誤して下記のようにしてみましたが、思った結果が得られません。エラー出まくりでなみだ目です
どうかよろしくお願いします


preg_match('/^(([^+]*)*(++[^-][^+]*)*)*?[^0-9]*$/',$num)

402:nobodyさん
08/10/09 19:32:07
[\+\-]?(?:0|[1-9]\d*)

403:402
08/10/09 19:33:52
不十分か。。

^[\+\-]?(?:0|[1-9]\d*)$


404:nobodyさん
08/10/10 00:47:33
>>403
ありがとうございます
動作を確認したところ
0のみの場合と数字の部分が9桁以上でもマッチしてしまうので、

^([^0]|[\+\-]?)(?:0|[1-9]\d{1, 9}?)$

試行錯誤してこのようにしてみましたが、全くもってマッチしなくなってしまいました
どのように書けばよろしいのでしょうか?

405:nobodyさん
08/10/10 00:58:41
^[\+\-]?(?:0|[1-9]\d{0,8})$

406:nobodyさん
08/10/10 07:43:15
>>405
できました
ありがとうございました

407:たまちゃん ◆ExGQrDul2E
08/11/02 16:02:00 wDYsJgfV
URLが、変数$urlにいくつ使われているか調べるために
preg_match_allを使いましたが、動きません。
どのようにしたらよいか教えてください。
<?php
$url = <<< URL
a
URLリンク(x.x)<)
URL;
preg_match_all ("|(https?|ftp)(://[[:alnum:]\+\$\;\?\.%,!#~*/:@&=_-]+)|",$url,$out, PREG_SET_ORDER);
echo count($out);
?>

実行結果:
Warning: preg_match_all() [function.preg-match-all]: Unknown modifier 'f' in /match.php on line 8
0


408:nobodyさん
08/11/02 16:11:53
別の正規表現構文を探してきてコピペする

409:nobodyさん
08/11/02 17:38:13
デリミタ|で始めたならm|にする必要があるっしょ
で、途中にORの意味で|使ってるから別のデリミタにしちゃいなよ

410:たまちゃん ◆ExGQrDul2E
08/11/02 21:36:24 0rYlog69
>>409
回答ありがとうございます
\(・∀・)/

途中で
https?|ftp
で使っているのですが、
最初を
||
//
以外に、何を使えばよいのでしょうか?

それとも

\(エスケープ)させればよいのでしょうか?

411:nobodyさん
08/11/03 20:39:21 XFsZ1V0e
文字クラス外部の?について。
URLの最短マッチさせる正規表現
(https?)
について、
この場合なら、
http
https
両方にマッチします。
(https)
これなら、
https
にしかマッチしません。
ここで、?の意味を調べたら、『(の意味を拡張。0回または1回の繰り返し最短マッチ』と書いてありました。なぜ
(https?)
これをすることによって、httpとhttpsをマッチさせられるのでしょうか?最短マッチなら、httでもいいのじゃないですか?

412:nobodyさん
08/11/03 21:26:40
https? なら ?は直前のsに対して0回か1回かだからね^^

413:nobodyさん
08/11/04 00:18:26
>>411
最短マッチではなく最長マッチじゃないの。
http までマッチしていることを前提にして、さらに s に対して 0 回または 1 回の
「より長い方」に優先してマッチする。

414:nobodyさん
08/11/08 03:56:35
最短マッチて言葉は*?とか量指定子のあとにくるときの
解説文でよく使われるからそれとごっちゃになっちゃったんじゃないかな

415:nobodyさん
08/11/08 14:37:01 Ln3BC38n
この道場にふさわしい記事だ!!!

URLリンク(codezine.jp)
URLリンク(codezine.jp)


416:nobodyさん
08/11/09 02:37:50
>>415

正規表現がらみのスレにそのリンクはりまくってんな。
関係者?



417:nobodyさん
08/11/15 02:31:51
ヤター
近所の図書館に詳説正規表現が入荷したお
まともなオライリ本は詳説イーサネットしかないとこだから嬉しい
以前は電子メールプロトコルがあったけど、
除籍されてリサイクルコーナーから旅に出てしまったよ

418:nobodyさん
08/11/24 00:38:36
2つの正規表現を1つにまとめる方法はありますか?

A→か
7→イ

という2ステップ手作業でやっていることを1ステップで済ませたいのです。

419:nobodyさん
08/12/08 02:09:36
PHPです。
$search="/^(.+?)<>(.*?)<>(.+)ID:(.+?)<>(.+)<>(.*)/";
preg_match($search,$res[$i],$match);
$id[$i]=$match[4];

$resは2chのdatファイルを一行ごとに配列に入れた物です。
Notice: Undefined offset: 4 (略) on 47
というエラーが出てしまいます。
47行目は$id[$i]=$match[4];です。

420:nobodyさん
08/12/08 02:21:41
>>419ですが、自己解決しました。
1001の場合には、IDがないからでした。


421:nobodyさん
08/12/19 23:54:16
正規表現の先生方、phpで質問させて頂きます。

$str = '[db]name[/db] たべたり [db]email[/db]';
preg_match_all('/\[db\].*?\[\/db\]/s',$str,$match);

print_r($match);



[db]name[/db] と
[db]email[/db] が抜き出されるのですが、
この [db] [/db] を無しで

name と email だけを抜き出すにはどう書けばよいでしょうか。
ご教示のほどよろしくお願いします。

422:nobodyさん
08/12/19 23:58:55
\](.*?)\[\/

423:nobodyさん
08/12/20 00:04:41
>>422
ありがとうございます!
このご恩忘れません。

424:nobodyさん
08/12/20 14:46:40
もう忘れてるだろw

425:nobodyさん
08/12/22 00:30:52 EdTiga+3
Jeditで
【あいう】を【6あいう】
【かき】を【4かき】
のように【 】でははさまれた文字列の頭に文字数×2の数値を追加したいのですが
どのように検索してどのように置換すればよいでしょうか?
【 】ではさまれた文字数はまちまちです。
よろしくお願いします。

426:nobodyさん
08/12/22 03:02:21
>>425

無理だろ。

マッチした部分の長さを得る手段がない。


427:425
08/12/22 15:22:20
orz






428:nobodyさん
08/12/22 15:42:49
マクロ組み合わせれば

429:425
08/12/22 17:01:35
>>427

マクロですね!
ありがとうございます。

430:nobodyさん
08/12/23 02:31:08
マクロ使ってよかったのかよっ!w


431:nobodyさん
08/12/28 04:14:06
失礼します
使用言語はperl5です

配列に、前からマッチしたところまでの文字列を繰り返し入れようとしています
($str = 'hogehugahage';
という文字列があって、hでマッチさせたら
@data = ['h', 'hogeh', 'hogehugah']
という配列になることを想定しています)

@data = $str =~ m/h/g;
のときは予想どおり
@data = ['h', 'h', 'h']
となったのですが、
@data = $str =~ m/^.*h/g
の場合は
@data = ['hogehugah']
となって1回最大マッチするだけのようです

どうすれば予想通りの結果になるでしょうか?

432:nobodyさん
08/12/28 08:21:40
$str = 'hogehugahage';
$c= substr($str, 0, 1);
while ($str=~ /$c/go){
push(@data, substr($str, 0, pos($str)));
}
for (@data){print $_,"\n";}

正規表現使わないとダメなの?

433:431
08/12/28 13:37:57
>>432
ありがとうございます
それでいけそうです

実は正規表現を必ず使わなきゃいけないというわけではなく、
もっと簡潔にかけるならなんでも大丈夫です

434:nobodyさん
09/01/01 19:19:28
先達のみなさま、Perl5+EUC環境で質問させてください

文字列の中で、漢字をのぞいた全角文字(全角数字、全角アルファベット、全角カタカナ)と
一部記号(丸括弧や全角スペースなど)以外が入っていたらマッチさせる、という処理をやろうとしています
文字クラスに許可する文字コードを細かく書いて、その否定で取れるかと思ったんですが
$txt =~ /[^xA3\xB0-\xB9]/
のような書き方まで来て、詰まってしまいました

$txt =~ /[^a-zA-Z0-1!#$ @]/
みたいな感じで、複数の文字コードを書くにはどうしたらいいんでしょうか?

ご教示お願いいたします


次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

5311日前に更新/179 KB
担当:undef