[過去ログ] + JavaScript の質問用スレッド vol.124 + (1002レス)
前次1-
抽出解除 レス栞

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
104
(3): (ワッチョイ f6c3-9IQd [159.28.152.184]) 2021/11/22(月)23:07 ID:+p8qnn8E0(3/3) AAS
>>103
置換した具体例で言うと例えば

さっきの例で置換部分が
result=orgCSV.replace(keyName, "ほげ");

元のテキストが下記だとすると
<title>[name]</title>

結果が下記になってしまってなんじゃこりゃ…て感じですね
<titlほげ>[ほげaほげほげ]</titlほげ>

正規表現オブジェクトを使わなければ普通に成功します
result=orgCSV.replace("[name]", "ほげ"); //<title>ほげ</title>になる
省1
105
(1): (ワッチョイ 4e61-9IQd [153.160.97.54]) 2021/11/22(月)23:44 ID:yUT2zM6b0(2/2) AAS
>>104
 tempKey="\\["+key+"\\]";
107
(1): (ワッチョイ 8b01-wksM [126.74.75.203]) 2021/11/23(火)00:04 ID:KUvc8h5G0(1/2) AAS
>>104
[] は文字クラス
外部リンク:developer.mozilla.org

更に、keyにメタキャラクタがあれば同じ事になるので、文字列全体をエスケープすべき
外部リンク:developer.mozilla.org

上記は正規表現の基本
正規表現を体系的に学習すれば、絶対に気がついたこと
急がば回れ
114: (ワッチョイ 4e2c-C1KD [153.136.94.40]) 2021/11/23(火)08:34 ID:Ln8GWMq+0(1) AAS
>>104
Ruby では、Regexp.escape で、

正規表現において、特別な意味を持つ文字の直前に、
エスケープ文字(バックスラッシュ)を挿入した、文字列を返す

p esc_1 = Regexp.escape( "[-a]" ) #=> "\\[\\-a\\]"

reg_1 = Regexp.new( esc_1 )
p reg_1.match( "x[-a]y" ) #<MatchData "[-a]">
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.029s