2017-02-17 7 views
0

Ruby 2.4を使用しています。文字列の先頭から非文字を削除するにはどうすればよいですか?私は文字列の先頭から非文字を削除する方法

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

ような何かを行うことができると思ったが、これはアクセント(「A」)のようなものか、それ以上のドットを「U」のそのタイプを無視しています。

数字や句読点の文字は考慮しないので、文字列の先頭から削除することをお勧めします。

答えて

1

あなたは、Unicodeのカテゴリクラス\P{L}と非文字を一致させることがあります。

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

パターンはの詳細:

  • \A - 文字列アンカーの開始
  • \P{L}+ - 一つ以上を( +)文字以外の文字(\P{L})。
+0

'/ \ A \ p {^ L} + /' –

+0

'^'はRubyの行の先頭を意味しているのに対して、 '\ A'は先頭を意味する文字列の。 '^'バージョンは単一行の文字列で動作するように見えますが、改行文字と混同しやすいでしょう。 – tadman

関連する問題