Ruby 如何删除字符串开头的非字母
我正在使用Ruby 2.4。如何删除字符串开头的非字母?我想我可以做一些类似的事情Ruby 如何删除字符串开头的非字母,ruby,regex,substitution,letters,Ruby,Regex,Substitution,Letters,我正在使用Ruby 2.4。如何删除字符串开头的非字母?我想我可以做一些类似的事情 name ? name.sub(/^[^a-z]*/i, "") : nil 但这忽略了像重音a(“á”)或上面有点的那种类型的“u” 我不考虑数字或标点符号字母,所以我希望从字符串的开头删除它们。 你可以用Unicode类类匹配非字母:< > > p{L}: name = name.sub(/\A\P{L}+/, "") 图案细节: \A-字符串锚的开始 \P{L}+-一个或多个(+)字符,而不是字母(\
name ? name.sub(/^[^a-z]*/i, "") : nil
但这忽略了像重音a(“á”)或上面有点的那种类型的“u”
我不考虑数字或标点符号字母,所以我希望从字符串的开头删除它们。 你可以用Unicode类类匹配非字母:< > > p{L}:
name = name.sub(/\A\P{L}+/, "")
图案细节:
-字符串锚的开始\A
-一个或多个(\P{L}+
)字符,而不是字母(+
)\P{L}
/\a\p{^L}+/
值得一提的是,^
在Ruby中表示行的开头,而\a
表示字符串的开头。^
版本似乎适用于单行字符串,但很容易与换行符混淆。