【问题标题】:Specify Unicode Character in Regular Expression在正则表达式中指定 Unicode 字符
【发布时间】:2017-01-23 23:30:01
【问题描述】:

如何创建包含 unicode 字符的 ruby​​ 正则表达式?

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

【问题讨论】:

  • 非常简单:/\u0002/。插值在 // 正则表达式分隔符内工作。
  • 天哪!我假设 \u 将是文字 u。回答问题,以便我接受!

标签: ruby-on-rails ruby


【解决方案1】:

你可以写/\x02/

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

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

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

这是另一个例子:

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

正如@TomLord 在 cmets 中提到的,您还可以指定一个范围。检查字符串是否包含 UTF-8 arrow

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

【讨论】:

  • 省略前导零也是有效的:/\u{2}/
  • 如果需要,您可以在正则表达式中完全按照您的期望指定 unicode 范围:/[\u{0020}-\u{D7FF}]/
  • 同样\u{....} 允许指定高于 U+FFFF 的代码点(例如 \u{1F600})或同时指定多个代码点,例如 \u{2600 2601 2602}
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-02
  • 2010-09-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-16
相关资源
最近更新 更多