2017-01-23 44 views
1

如何创建包含unicode字符的ruby正则表达式?在正则表达式中指定Unicode字符

例如,我想在我的正则表达式中使用字符“\ u0002”。

+1

非常简单:'/ \ u0002 /'。插值工作在''''正则表达式分隔符中。 – mudasobwa

+0

哦,伙计!我认为你会是一个真正的你。回答这个问题,我可以接受! –

回答

1

你可以写/\x02/

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

如果你不知道,你可以从一个字符串开始:

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

再举一例:

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

由于@TomLord在评论中提到,你也可以指定一个范围。要检查一个字符串是否包含UTF-8 arrow

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

也可以省略前导零:'/ \ u {2} /' –

+1

如果需要,你可以在正则表达式中指定你想要的unicode范围:'/ [\ u003me} \ u {D7FF}] /' –

+1

同样,'\ u {....}'可以一次指定超过U + FFFF(例如'\ u {1F600}')或多个代码点的代码点,例如\ u {2600 2601 2602}' – Stefan