如何从字符串的开头删除非字母
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}
).
我正在使用 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}
).