重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【GOLF me!】初月無料お試し

あるスクリプトに
replace(new RegExp("( ?|^)word\\b"), "");
とありました。この ( ?|^)word\\b の意味がどうしても分かりません。
どんな意味でしょうか?

A 回答 (3件)

( ?|^)word\bは、


「 ?word\b」または「^word\b」です。

さらに、「 ?word\b」は、
「 word\b」または「word\b」です。

結局
「^word\b」または
「 word\b」または
「word\b」
のいずれかにマッチするということになります。
(^は、行頭を意味し、\bは単語の区切りを意味します。)
そして、このパターンにマッチした文字列をreplaceで削除します。

もう少しわかりやすく言えば、wordという文字列を削除しますが、
「aaaword!」のようにwordの前になにか文字列があっても「aaa!」となります。
「wordaaa!」のようにwordの後に単語文字が続く場合はwordは削除しません。
「aaa word!」のようにwordの前にプランクがある場合は、
ブランク文字を含めて削除し、「aaa!」となります。

結局「^」の指定はあまり意味がなく、
「 ?word\b」としても同じだと思います。
    • good
    • 0
この回答へのお礼

ありがとうございました。理解できました。
およその見当はついていたのですが、最後の\\となっている点が分からなかった原因です。「\b」で区切りを意味し、それをエスケープしていたのですね。先頭の?の前にあるスペースも見逃していました。

お礼日時:2010/03/25 15:10

>( ?|^)word\\b



「 ?」が怪しいですね。
wordの前のスペースであれば?はいらないですから・・・
    • good
    • 0

正規表現といっても、言語ごとに差異がありますんでね。


何の言語で書かれたスクリプトなのかくらいは書いた方が良いですよ。

まあ、それが分かってれば、
普通はリファレンスサイトを見て判断できるんですけどね。

この回答への補足

もちろんJavaScriptなんですが。

補足日時:2010/03/25 08:18
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!