2017-01-23 37 views
1

ユニコード文字を含むルビー正規表現を作成するにはどうすればよいですか?正規表現でのUnicode文字の指定

たとえば、正規表現の文字「\ u0002」を使用したいとします。

+1

かなり単純です: '/ \ u0002 /'。補間は '/' regexpデリミタの中で動作します。 – mudasobwa

+0

ああ男!私は\ uがリテラルuであると仮定しました。私は受け入れることができるように質問に答えてください! –

答えて

1

あなたは/\x02/を書くことができます:

"\u0002" =~ /\x02/ 
#=> 0 

あなたがわからない場合、あなただけの文字列から開始することができます:

Regexp.new("\u0002") 
#=> /\x02/ 

はここで別の例です:

"☀☁☂" =~ /\u2602/ 
#=> 2 

として、 @TomLordのコメントには、範囲を指定することもできます。文字列にUTF-8 arrowが含まれているかどうかを確認するには:

"↹" =~ /[\u2190-\u21FF]/ 
#=> 0 
+1

また、 '/ \ u {2} /' –

+1

で先行ゼロを省略することもできます。必要に応じて、正規表現のUnicode範囲を正確に指定することができます: '/ [\ u {0020} \ u {D7FF}]/' –

+1

同様に、' \ u {....} 'はU + FFFF(例えば' \ u {1F600} ')以上のコードポイントを指定するか、複数のコードポイントを同時に指定することができます。 {2600 2601 2602} ' – Stefan