2012-01-09 31 views
1

2つの連続したバックスラッシュで任意の文字列にマッチする正規表現を見つけようとしています。私はすべてのバリエーション、あらゆる助けを試みていますか?バックスラッシュの処理に関する情報2つのバックスラッシュのルビ正規表現

b='\\mystring' 

if b=~/\\\\/ 
    puts "it matches" 
end 

これは一致しないようです。

答えて

5

あなたの正規表現は見栄えが良いですが、あなたの文字列に2つのバックスラッシュが含まれていません。それは2つが含まれているように見えますが、実際の文字列ではなくソースファイルにのみあります。これを試してみてください:

'\\\\mystring' =~ /\\\\/ 
1

バックスラッシュはさらにハード'引用符の内側にまだ少し魔法です。まず、'自体を引用できる必要があります。したがって、文字列に\が続き、その後に'がある場合はどうなりますか?魔法の文字の前に曖昧さなく一つの\を得るために、バックスラッシュをバックスラッシュで囲むことができる必要があります。

>> '\\'.length 
=> 1 
>> '\'' 
=> "'" 
>> '\\'[1,1] 
=> "" 
>> '\\'[0,1] 
=> "\\" 
+0

thx – timpone

関連する問題