如何从字符串的开头删除非字母

How do I remove non-letters from the beginning of the string

我正在使用 Ruby 2.4。如何从字符串的开头删除非字母?我以为我可以做类似

的事情
name ? name.sub(/^[^a-z]*/i, "") : nil

但这忽略了诸如带重音符号的 a ("á") 或上面带有点的 "u" 之类的东西。

我不考虑数字或标点符号字母,因此我希望将它们从字符串的开头删除。

您可以将 non-letters 与 Unicode 类别匹配 class \P{L}:

name = name.sub(/\A\P{L}+/, "")

图案详情:

  • \A - 字符串锚点的开始
  • \P{L}+ - 一个或多个 (+) 个字母以外的字符 (\P{L}).