[過去ログ] スレ立てるまでもない質問はここで 162匹目 (1002レス)
上下前次1-新
抽出解除 レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
111(1): (アウアウウー Sa45-Rexe) 2022/10/26(水)13:04 ID:Do8Z1/L1a(7/9) AAS
if (preg_match("/\bweb\b/i", "PHP is the web scripting language of choice.")) {
echo "A match was found.";
} else {
echo "A match was not found.";
}
PHPマニュアルに↑のように書いてあるわけよ
ここでダブルクオーテーションで囲まれてる"/\bweb\b/i"のことを文字列リテラルと言うわけ
PHPでダブルクオーテーションで囲まれた文字列リテラルはその中の\が特別な意味を持つんだ
これをエスケープコードと言う
エスケープコードを普通の文字に直すことを「エスケープする」と言ってこの場合は\を二つ重ねて\\と書くことでエスケープされてただの\を表すようになる
だから\bを書きたい時には\\bと書かなきゃいけないはず
なのにエスケープしなくていいのか?
というのが俺の疑問
プログラマー板で話す時ってここから言わなきゃいけなかったのか
知らんかったわ
134: (ワッチョイ e94f-Y/ct) 2022/10/27(木)00:08 ID:6HC7kWqW0(1/2) AAS
>>111
Ruby では、/〜/ は文字列ではなく、正規表現リテラル。
\b は単語境界、\B は非単語境界にマッチする
p /\b.\b/.match( "a b c" ) # => "a"
p /\B.\B/.match( "abc" ) # => "b"
文字列から、正規表現リテラルを作る場合は、\b を\\b にしないといけない
re_1 = "\b."
p /#{ re_1 }/ #=> /\x08./
re_2 = "\\b."
p reg = /#{ re_2 }/ #=> /\b./
p reg.match( "abc" ) # => "a"
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ
ぬこの手 ぬこTOP 0.038s