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

时间:2017-02-17 23:24:41

标签: ruby regex substitution letters

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

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

但这忽略了重音a(“á”)或带有上方点的“u”类型的东西。

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

1 个答案:

答案 0 :(得分:1)

您可以将非字母与Unicode类别类\P{L}匹配:

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

模式详情

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