Ruby スクリプトでstring#gsub
は、正規表現として使用される文字列を生成するために使用しています。この正規表現は+
文字と一致する必要があるため\+
、エスケープするために使用しています。
このコード例は、私の混乱の原因を特定します。このコードで、作成したい正規表現は/a\+b/
. ただし、 を使用する#gsub
と、返される正規表現は/ab/
.
string = 'a\+b'
expected = Regexp.new(string)
actual = Regexp.new('x'.gsub('x', string))
# expected returns /a\+b/
# actual returns /ab/
#gsub
と+
文字に関する Ruby ドキュメントには何も見つかりませんでした。この結果を生み出すために何が起こっているのかを理解するのを手伝ってくれる人はいますか?
\x2B
今のところ、コードを機能させるために、文字の ANSI 16 進コードである と照合してい+
ます。それほど難読化されていないこれを達成する方法はありますか?
前もって感謝します!