检查字符串是否包含unicode范围内的字符(使用Ruby)

时间:2014-03-12 00:52:47

标签: ruby unicode

我想在Ruby中创建一个简单的函数,它将检查给定的字符串是否包含范围内的任何unicode字符,如下所示:

  • U + 007B - U + 00BF
  • U + 02B0 - U + 037F
  • U + 2000 - U + 2BFF

我怎样才能做到这一点?谷歌对我来说是空白,所有关于删除unicode字符或检查字符串是否包含unicode的事情。

2 个答案:

答案 0 :(得分:2)

最容易的事情可能是使用String#indexString#match甚至是String#[]的正则表达式:

string.index(/[\u007B-\u00BF\u02B0-\u037F\u2000-\u2BFF]/)
string.match(/[\u007B-\u00BF\u02B0-\u037F\u2000-\u2BFF]/)
string[/[\u007B-\u00BF\u02B0-\u037F\u2000-\u2BFF]/]

如果他们找不到模式,那么这三个人都会给你nil(这是假的),如果他们这样做,那么非nil(这将是真实的)。

答案 1 :(得分:0)

我会这样做:

my_string = "{ How are you ?}"                                     
puts my_string.chars.any? { |chr| ("\u007B".."\u00BF").include?(chr) }  
#=> true