【问题标题】:How to get Ruby 1.9 regexp supports \p{Nonspacing_Mark}?如何获得 Ruby 1.9 正则表达式支持 \p{Nonspacing_Mark}?
【发布时间】:2011-08-08 14:06:37
【问题描述】:

“a”上方的变音符号不应该被正则表达式删除吗?

 "hǎo".gsub(/\p{Nonspacing_Mark}/, '')
 => "hǎo" 

 "hǎo".gsub(/\p{Mn}/, '')
 => "hǎo" 

更新:

我从它在 Java 中的工作方式中得到了它。

Normalizer.normalize("hǎo", Form.NFD).replaceAll("\\p{Mn}+", "")

我需要先对其进行规范化,将“ǎ”拆分为“a”和变音符号。

【问题讨论】:

  • Ruby 知道你的源代码是 UTF-8 吗?
  • 您是否因为不知道如何以“不区分重音”的方式比较两个字符串而想要这种邪恶?

标签: ruby regex unicode


【解决方案1】:
puts UnicodeUtils.nfkd("ﻺ (hǎo)").gsub(/[\p{Nonspacing_Mark}]/, '')

How to replace the Unicode gem on Ruby 1.9?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-04-02
    • 2011-01-13
    • 2011-07-15
    • 1970-01-01
    • 1970-01-01
    • 2014-05-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多