トップページ⇒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/
0746nobodyさん04/10/03 02:25:54ID:???
スマソ。括弧を1つ取るの忘れた。
×((?=[^[:graph:]])|$)) ○((?=[^[:graph:]])|$)
074774404/10/03 04:57:52ID:???
>>745-746
回答ありがとうございます。

XREA を利用しているので PHP の 4.3.8 を利用しているのですが、
Warning: ereg_replace(): REG_BADRPT が出てしまいました
(いろいろ試したみたところ、 (?= に反応しているようでした)。
preg mb_ereg でも同様のコードを試してみたところ (?= はパスするものの
ereg と違って [:graph:] に日本語がマッチしてしまうようです(こっちが正しいのかな?)。

745のコードを参考に mb_ereg で以下のように書き直してみたところなんとか動作しました。

$mes = mb_ereg_replace('([a-zA-Z.]{2,})((?=[^a-zA-Z0-9<>":;.,/=?+_&@\-])|$)',
'<a href="keyword.php?q=\1">\1</a>', $mes);

よくわからないのですが、[:alpha:]を使うと漢字にマッチしたりして挙動が変になっていました。

うーん、まだまだ勉強が必要です。
0748nobodyさん04/10/03 05:14:58ID:???
eregはPosix拡張、pregはPerl拡張。
0749nobodyさん04/10/03 05:29:07ID:???
正規表現ライブラリがちがううんだよ。PHPマニュアルにも書いてあるが、
例によって>>1の正規表現メモんとこ参照すると分かりやすい。
0750nobodyさん04/10/03 22:20:30ID:???

あるシステムの独自タグをあつかっています。

<XXXX Name = Test1 number = 1 value1 = "テスト" value2 = "テスト\"ああ\"" value3="テスト3 \t test">
</XXXX>

という具合に、<XXXX で始まるタグの中にかかれた各属性と値をそれぞれ分割したいのです。最初、Javaプログラムで頑張って書いていましたが、
へたれな自分のプログラムが長くなってしまいバグも所々に…。くせものが属性と値の表記で、valueというキーの値がaaaa としても、
value = aaaa の場合
value = "aaaa" の場合で異なる値にしたい(" がポイント)
value=aaaa や、途中で改行やタブが入る、
value=
aaaa
といった場合もあります。

値の中に、ダブルクォーテーションが入る場合やスペースが入った場合を考慮してJavaプログラムで何とかしようと思ってましたがスパゲッティ状態です。

正規表現でエイヤっと属性名と値で分割させたいのですが、、、>>1のサンプルをあさってますが、もし、何か良いモノ知っていましたら教えてください。
075175004/10/03 22:21:42ID:au5XkXk9
ageときます。スマン
0752nobodyさん04/10/04 01:59:41ID:???
>>750
その独自タグの仕様をはっきりさせなければ誰もわからんよ。
「=」の隣にスペースが入っていたりダブルクォートでくくっていたり
いなかったりしてるし。
0753nobodyさん04/10/04 02:00:16ID:???
s/<XXXX[\n\s]+([^>]*)>(.|\n)*<\/XXXX>/$1/g;
/(.+?)[\n\s]*=[\n\s]*("(\\"|[^"])+"|[^\s]+)(?:[\n\s]+|$)/; #$1=属性, $2=値

やっとできた・・・。
\"を含める方法とか、勉強になりました。
075475304/10/04 02:10:49ID:???
>>752
そうだ、
>value = aaaa の場合
>value = "aaaa" の場合で異なる値にしたい(" がポイント)
これがどういう結果を望んでいるのか分からないままやってたw

とりあえず、ダブルクォートは残す仕様にしておいたけど。
075575004/10/04 07:43:16ID:3m/jnQ5F
ありがとう〜(;´д`) とりあえず、ためしてみます。。

>>752にあるように、= の両隣は、スペースが入ったり、入らなかったりします。厳密にはJavaでいうところのホワイトスペースを許可してて、タブとか全角スペースなどもありです。ここは許可しないことを改善してもらうつもりです。
あとで結果報告しますね。ありがとう〜
0756nobodyさん04/10/04 11:31:31ID:???
可能であれば、独自な形式でなくて、
みんなが使ってるフォーマット (XML ね) にしてもらうようにした方が良いと思う。
0757nobodyさん04/10/04 15:15:50ID:???
同感。あとちゃんとtokenizeすればスパゲッティにはならんでしょ、このくらい。
0758nobodyさん04/10/11 11:12:51ID:ek9GJkPH
質問させてください。
EZwebの絵文字をShift_JISコードに変換する正規表現を書いたつもりなのですが、
”♪”マークなど一部の絵文字以外の記号にマッチしてしまいます・・・。

(使用言語:PHP 4.3.3)
$sjis='[\x81-\x9F\xE0-\xF7\xFA-\xFC][\x40-\x7E\x80-\xFC]|[\x00-\x7F]|[\xA1-\xDF]';
$text=preg_replace("/((?:$sjis)*)([\xf3-\xf7][\x40-\xfc])/e","'\\1['.bin2hex('\\2').']'",$text);

EZweb絵文字だけにマッチさせるようにするには、どうのように直したら良いでしょうか?
よろしくお願いします。

0759nobodyさん04/10/12 01:28:24ID:???
(?:$sjis)*のところ、(?:$sjis)*?にしないと全部取っちゃうよ。
そこら辺は大丈夫?
076075904/10/12 01:34:03ID:???
ああ、そうか。
[顔文字]♪
のパターンが良くないのね。
今まで
♪[顔文字]
でやってたから気づかなかった。

言い訳だけど、具体的にどういうパターンがダメなのか書いてほしかったな。
076175904/10/12 03:17:53ID:???
[\xf3-\xf7][\x40-\xfc]は絵文字の文字コードってことで良いかな。
sjisの漢字の範囲は[\x81-\x9F\xE0-\xEF][\x40-\x7E\x80-\xFC]じゃない?

てなわけで、とりあえずこれ。
/($sjis)([\xf3-\xf7][\x40-\xfc])/e

でも、これでは絵文字が連続した場合は変換できない。

やはり、どこが1バイト目か2バイト目か分かるように、
あらかじめ明確に文字を区切らなきゃいけないっぽい。

$text = preg_replace("/($sjis)/", "$1 ", $text);
$text = preg_replace("/([\xf3-\xf7][\x40-\xfc])\s/e", "'['.bin2hex(\\1).'] '", $text);

こんな感じにすれば確実。もっといい方法あれば良いんだけど。
PHPはやったことないので、細かい間違いはご容赦・・・。
0762nobodyさん04/10/12 14:09:22ID:oX6FVXHm
正規表現のプロの方々のお力をお借りしたく、質問をさせてください。

perl のマッチングで文章中の全角数字を的確に取得したいのですが、
どうにもこうにも化けてしまいます。

$value = "もしかして762はバカ?";
if($value =~ /([0123456789]*)/){
    $match = $1 ;
    print "$match \n"; #←「・」となってちゃんと取得できてない
}

環境:
  Perl5 (ActivePerl)
  Win2k
  文字コードはSJISで。

どうすればよいのでしょうか・・・
0763nobodyさん04/10/12 14:22:00ID:???
>>762
http://homepage1.nifty.com/nomenclator/perl/shiftjis.htm
0764nobodyさん04/10/12 14:39:46ID:???
とりあえずこんな感じで対処できたようです・・・見苦しい感じですが

$value = "実は764は変態?";
if($value =~ /(\x82[\x4F-\x58]\x82[\x4F-\x58]\x82[\x4F-\x58]|\x82[\x4F-\x58]\x82[\x4F-\x58]|\x82[\x4F-\x58])/){
    $match = $1 ;
    print "$match \n";
}

ありがとうございました。
076575904/10/12 14:52:38ID:???
漏れならこうだな。
/((?:\x82[\x4F-\x58])+)/
0766nobodyさん04/10/12 20:54:11ID:???
Shift_JISか。。。
076775804/10/12 22:55:44ID:c8Tbm8wX
>>759
レスありがとうございます。
ちょっと質問がわかりにくくてすみません。
具体例を出すと、以下のような感じです。

$sjis='[\x81-\x9F\xE0-\xEF][\x40-\x7E\x80-\xFC]|[\x00-\x7F]|[\xA1-\xDF]';
$text="今日はカレーだ♪るんるん♪";
$text=preg_replace("/((?:$sjis)*?)([\xf3-\xf7][\x40-\xfc])/e","'\\1['.bin2hex('\\2').']'",$text);
print $text;  // ← '今日はカレーだーf482]驍驍'

それで、昨日からいろいろ試したところ、
$text=preg_replace("/\G((?:$sjis)*?)([\xf3-\xf7][\x40-\xfc])/e","'\\1['.bin2hex('\\2').']'",$text);
とすることで、ウチの環境では解決しました。
ですが、レン鯖(PHP 4.0.6)ではEZweb絵文字に全くマッチしなくなりました・・・orz

どなたかアドバイスよろしくお願いします。
もしPHP固有の問題であるなら該当スレに移動します。
076875804/10/12 23:07:38ID:???
あ、書き忘れていました orz
>>761で教えていただいた方法ですが、

$text="今日はカレーだ♪るんるん♪"; // 最後の文字は SJISコードF6CFの絵文字
$text = preg_replace("/($sjis)/", "\\1 ", $text);
$text = preg_replace("/([\xf3-\xf7][\x40-\xfc])\s/e", "'['.bin2hex(\\1).']'", $text);
print $text; // ←'今 日 は カ レ ー だ ♪ る ん る ん ♪ [f6cf]'

となって、文字ごとにスペースが入ってしまい、
そうかと言って
2行目を $text = preg_replace("/($sjis)/", "\\1", $text); に変えたら
'今日はカレーだ♪るんるん♪'(変化無し)という状況です・・・。

0769nobodyさん04/10/13 19:34:15ID:???
ダブルコーテーションの内側にある"を全て\"にエスケープするには、どのように置換すればよろしいでしょうか?
$text = '$a = "foo"bar"; $b = "hoge"huga"hage";';
これを'$a = "foo\"bar"; $b = "hoge\"huga\"hage";'にしたいです。
0770nobodyさん04/10/13 19:50:38ID:???
>>769
無理。というか無茶。
「ダブルコーテーションの内側」の文字列や $text 全体に、
何か一定の制限や特性があるならなんとかできなくもないかも知れないけど。
0771nobodyさん04/10/13 20:05:36ID:???
前にスペースある"と後ろにセミコロンがある"を除いたすべての"をエスケープするという方法でもいいのですが。
0772nobodyさん04/10/13 20:10:59ID:???
>>771
Perl なら
$text =~ s{\x20"(.*?)";}{ (my $str = $1) =~ s/"/\\"/g; qq|\x20"$str";| }eg;
0773nobodyさん04/10/13 20:14:38ID:???
もしくは
$text =~ s{(?<=\x20")(.*?)(?=";)}{ (my $str = $1) =~ s/"/\\"/g; $str }eg;
0774nobodyさん04/10/13 20:48:20ID:???
772-773
サンクス。とりあえずそれでできましたが、
$text = '$a = "foo";bar";';
みたいなケースも考えるときついですね。
とりあえず、出直してきます。
0775nobodyさん04/10/14 02:46:56ID:???
>>758
1.sjis-winをutf8にする
2.utf8はsjisやeucのような途中マッチが起こらない
3.そのためにはソースもutf8で書いた方がよい
4.utf8でezweb文字列の正規表現を書く

うまくできたらソース晒してね
0776nobodyさん04/10/14 04:01:33ID:???
>>775
4. がうまくできるとは到底思えないのだが。
ていうか単に煽ってるだけか?
0777nobodyさん04/10/14 07:09:58ID:???
別に普通に出来るだろ
"\xF6\xCF" -> "\xEE\x93\xB6"
077877604/10/14 14:00:36ID:???
>>777
調べてみたら、
 - EZweb の絵文字は Shift_JIS のユーザ定義領域を使っていて、
 - Shift_JIS のユーザ定義領域は Unicode との対応が定義されている
なので、ちゃんと相互変換もできるし問題ないということなのかな。
漏れが無知だったようだ。すまん。
0779nobodyさん04/10/16 19:49:17ID:???
550から999までというのはどういう風に書けばよろしいでしょうか?
0780nobodyさん04/10/16 20:02:11ID:???
>>550-999
ってレス番の話じゃないのか?
0781nobodyさん04/10/16 20:06:43ID:???
>>780
レス番の話ではなく、数字の550から999までだけマッチングさせたいのです。
0782nobodyさん04/10/16 20:07:41ID:???
/[5-90][5-90][0-9]/
???
078378204/10/16 20:14:15ID:???
さっき正規表現勉強し出したアホです、
間違ってたらスマソ。
叩かないで(´・ω・`)
0784nobodyさん04/10/16 20:18:18ID:???
>>782
すみませんが、これですと2桁目に1から4が入るとマッチしなくありません?例えば640とか。
0785nobodyさん04/10/16 20:18:33ID:???
ifでいいじゃん
0786nobodyさん04/10/16 20:25:55ID:???
/(550|551|552|553(ry
0787nobodyさん04/10/16 20:27:24ID:???
>>786
いや、マヂで!?w
078878204/10/16 20:28:35ID:???
/5[5-90][0-9]|[6-90][0-9][0-9]/
こうかな?
0789nobodyさん04/10/16 20:29:43ID:???
>>788
もうおまえはレスしなくていいよ
せめて試してから書けよ
079078204/10/16 20:32:35ID:???
どうやって試すん?(´・ω・`)
0791nobodyさん04/10/16 20:35:49ID:???
>>788
おっ、なるほど、500台とそれ以降に分ければいいのですね!ありがとうございます、1つ賢くなりました(`・ω・´)
0792nobodyさん04/10/16 20:38:10ID:???
>>789
んじゃ喪前が素晴らしく簡潔な奴を披露したら?
0793nobodyさん04/10/16 20:38:37ID:???
>>791
いや、782間違ってるから
079478204/10/16 20:39:32ID:???
/5[5-90][0-9]|[6-9][0-9][0-9]/
0がひとつ多かったみたい
(・∀・)
0795nobodyさん04/10/16 20:41:25ID:???
自演乙
079678204/10/16 20:42:46ID:???
/5[5-9][0-9]|[6-9][0-9][0-9]/
これで最後・・・修行してきまつ
0797nobodyさん04/10/16 20:55:24ID:???
どういう文字列を調べたいのかわからんのによく答えられるな。
0798nobodyさん04/10/16 21:01:13ID:???
/(0|[5-9])[0-9][0-9]/
0799nobodyさん04/10/16 21:02:00ID:???
て、500〜だったな∧||∧

素直に/[5-9][0-9][0-9]/でいいんちゃうの?
0800nobodyさん04/10/16 21:03:45ID:???
あーもうシバキ倒してください
0801nobodyさん04/10/16 21:04:15ID:???
>797
馬鹿がキタ━━━━━━(゚∀゚)━━━━━━ !!
お前な、上のやつよーく見ろ。
0802nobodyさん04/10/16 21:05:12ID:???
>797 => >798 orz
このスレ馬鹿しかいないってことでFA?
0803nobodyさん04/10/16 22:19:30ID:???
>>781
if ($n =~ /[1-9]\d{2}/ and 550 <= $&) { マッチ; }
0804nobodyさん04/10/16 23:10:17ID:???
>>803
マジレスすんなよ!空気嫁!!
0805nobodyさん04/10/16 23:28:12ID:???
>804
だから?
080677904/10/17 00:19:04ID:???
779ですが、なんかうまくいったようです。みなさんありがとう。
0807nobodyさん04/10/17 00:28:58ID:???
>>804
まだ続けるつもりだったのか?どう見ても終焉の空気が流れてるだろ。食う清め。
0808nobodyさん04/10/18 04:08:53ID:aBkVRsoL
if($type =〜 /image\/.*/){

はどういう意味ですか?
0809nobodyさん04/10/18 04:13:49ID:???
おそらくcontent-typeかmime-typeかが画像であるかってことじゃない?
0810nobodyさん04/10/18 11:03:43ID:???
いや、'\' じゃなくて '\' だから、parse error・・・・
って、MLとマルチポストするなよ。
0811nobodyさん04/10/18 11:29:23ID:???
〜 これにはつっこまんのか
0812nobodyさん04/10/18 12:01:37ID:???

'\' 俺が悪いのか?
-


v'\'v そうさ。
 o
0813nobodyさん04/10/18 12:42:55ID:???
ML にはちゃんと半角で '~', '\' としてるからわかってそう書いてるんだと思うけど。

ていうか、記号をわざわざ全角で書いてるひとが多いけど、なんでなんでしょ?
'&' や '"' と同じような罠にはまるのを避けてるのかな?
0814nobodyさん04/10/18 13:11:12ID:???
>>813
SafariだとASCII or Unicode以外でポストするとき、迷惑にも
? -> \, ? -> 〜 に変換しやがるのです。
0815nobodyさん04/10/18 13:13:22ID:???
なぜか数値参照が化けた..orz
バックスラッシュ・チルダが全角バックスラッシュ・全角ウェーブダッシュにされるんです。
0816nobodyさん04/10/18 13:43:13ID:???
そうだったのかあ。
よくプログラミングネタや UNIX のトラブルシュートネタで、
コードやエラーメッセージをそのまま貼れ、って言うことがあるけど、
そういうのがあるとすると厄介ですなあ。
0817nobodyさん04/10/22 17:38:02ID:xzmN9eHo
perlのサブルーチンを抜き出すような正規表現はどう書けばいいでしょうか?
言語はperlです。

-----------
sub aaa{
1
2
}
\n
sub bbb{
3
}
\n
\n
------------
この場合

-----------
aaa{
1
2
}
\n
と
bbb{
3
}
\n
\n
と
出力したいのですが。
よろしくお願いします。
0818nobodyさん04/10/22 18:28:19ID:???

つまらん
081981704/10/23 01:25:36ID:fB1MfhBi
そう言わず、ヒントだけでも下さい!
0820 ◆7CWqH7Oesg 04/10/23 13:26:33ID:???
$data=~ s/[\x0A\x0D]=\w+.*?=cut//gs;
$data=~ s/([\s;{}]*)#[^\x0A\x0D]*/$1/g;
$data=~ s/[\x0A\x0D]__(?:END|DATA)__.*//s;
@result= $data=~ /\s+sub\s+([a-zA-Z_]\w*\s*(?:\([^)]*\))?\s*\{(?:[^}]|\{[^}]*\})*\})/g;

これでどう?
0821nobodyさん04/10/23 13:52:56ID:fB1MfhBi
$data = "sub aaa{\n1\n2\n}\n\nsub bbb{\n3\n}\n\n\n";

$data=~ s/[\x0A\x0D]=\w+.*?=cut//gs;
$data=~ s/([\s;{}]*)#[^\x0A\x0D]*/$1/g;
$data=~ s/[\x0A\x0D]__(?:END|DATA)__.*//s;
@result= $data=~ /\s+sub\s+([a-zA-Z_]\w*\s*(?:\([^)]*\))?\s*\{(?:[^}]|\{[^}]*\})*\})/g;

print @result;

を実行しても

bbb{
3
}

しか表示できません。
0822 ◆7CWqH7Oesg 04/10/23 14:01:51ID:???
>>821

@result= $data=~ /\s+sub
を以下に変えないといけないようだ。

@result= $data=~ /(?:^|\s|=)sub
0823nobodyさん04/10/29 01:30:56ID:???
「直前が{でも}でもない改行を削除」を性器表現するとどうなりますか?
0824nobodyさん04/10/29 02:15:48ID:???
>>823
実装言語を言わずに回答が欲しいですかそうですか
0825nobodyさん04/10/29 02:35:07ID:???
実装言語はなんでもいいです、でもいいですが、とりあえずはPerlでよろしくです。
0826nobodyさん04/10/29 03:55:33ID:???
>>823
s/([^\^{}])\n/$1/g; # unixの改行
s/([^\^{}])\r\n/$1/g; # windowsの改行
s/([^\^{}])\r/$1/g; # Macの改行
0827nobodyさん04/10/29 06:16:46ID:???
また丸投げかよ
082882604/10/29 12:08:28ID:???
ごめn、まちがった。
s/(^|[^{}])\n/$1/g;
だた。
0829nobodyさん04/10/29 13:38:27ID:???
これでもよくね? s/([^{}])\n/$1/g;

>>823
次に質問するときはちょっとでも努力の跡を見せれ。
0830nobodyさん04/10/29 13:51:59ID:???
すまない、そしてありがとう。
829でできました。
0831nobodyさん04/10/29 15:00:41ID:???
828、829とも改行が続く場合に削除できない。
また、829では先頭の改行を削除できない。
直前のパターンを指定する場合、普通は
(?<=PATTERN) や (?<!PATTERN) を使う。
この場合なら、s/(?<![{}])\n//g; とする。

>>829
次に回答するときはちょっとでも試行の跡を見せれ。
0832nobodyさん04/10/29 15:14:32ID:???
>>831
改行が続く場合と、先頭の改行の違いを述べよ。
828が正解。
実際に試してから偉そうなこと言えよな。
0833nobodyさん04/10/29 16:20:34ID:???
>>823-832
# 「直前が { もしくは } の改行のみ残る」なら、これは3行になる筈
my $orig = "\n\nfoo\n\n{\nbar\n}\n\nbaz\n\n";

(my $copy = $orig) =~ s/(^|[^{}])\n/$1/g; # 828
print "[$copy]\n";
# [
# foo
# {
# bar}
# baz]
# … NG.

($copy = $orig) =~ s/(?<![{}])\n//g; # 831
print "[$copy]\n";
# [foo{
# bar}
# baz]
# … OK.
0834nobodyさん04/10/29 16:25:51ID:???
>>832
$_ = <<EOH;

abc

123
EOH
の時、1行目のが「先頭の改行(^\n)」で、
abcの後ろと次の空行の改行が「続く改行(\n\n+)」。

これを>>828に通すと
abc
123
となり、>>831に通すと
abc123
となる。
{ と } の後ろ以外の改行は消すんだったよな?
恥の上塗りご苦労。
0835nobodyさん04/10/29 16:32:05ID:???
>>832
833-834を踏まえた上で、828が正解である根拠を述べよ。
831が正解。
頭良くなってから偉そうなこと言えよな。
0836nobodyさん04/10/29 16:34:53ID:???
>>833=>>834
ばか?変数に入れたものなんか誰も処理しないよ。
変数に書いてる間にエディタで取った方が速いよ。
普通のファイルでやって皆。
--------

foo


{

bar

}


baz


-----------
0837nobodyさん04/10/29 16:38:48ID:???
>>836
>>825は「とりあえずはPerlでよろしく」と言ってるわけだが。
083882504/10/29 16:40:55ID:???
解決したんでもうやめれ。
0839nobodyさん04/10/29 16:43:14ID:???
>>834
いちいちヒアドキュメントなんか書いてる間に
(あるいはスクリプトに挿入してEOHなんてやってる
間に)エディタの置換でやったほうが速いよ。
>>831が間違いだと言ってないからな。
ただ、否定の?は遅いからな(プッ
0840nobodyさん04/10/29 16:46:04ID:???
ということで、828が最善解。
0841nobodyさん04/10/29 17:58:19ID:jREmvBrx
JavaScriptの正規表現使って文字列の先頭と最後の空白を取りたいのですが
どう書けばいいのでしょうか?
abc dfg hij a
を(先頭と最後に3つ空白がある)
abc dfg hij a

みたいにしたいのです。

教えてください。
0842nobodyさん04/10/29 18:24:10ID:???
>>841
str = " abc dfg hij a ".replace(/^\s+|\s+$/g, "");
分かりやすく、前後のスペースは全角にしたので注意。
.replaceを適用した文字列や変数自身は置換されないので、
結果を受け取る必要あり。
0843nobodyさん04/11/02 02:39:16ID:???
/*str1*/str2/*str3*/
という文字列があって/*〜*/の部分をereg_replaceで空文字列に置き換えようとしたとき

ereg_replace("(/\*.*\*/)","","/*str1*/str2/*str3*/");
てやると、先頭の/*と末尾の*/がマッチして全部消えるんだけど
test2は残して、test1とtest3だけ消す方法ってある?
0844nobodyさん04/11/02 04:38:17ID:???
test?
( ゚Д゚)
0845nobodyさん04/11/02 06:03:36ID:???
(/\*.*?\*/)
■ このスレッドは過去ログ倉庫に格納されています