2017-02-17 17 views
0

Я использую Ruby 2.4. Как удалить не-буквы с начала моей строки? Я думал, что я мог бы сделать что-то вродеКак удалить не-буквы из начала строки

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

но пренебрегает вещи, как акцентированный а («а») или что тип «и» с ним над точками.

Я не рассматриваю буквы цифр или знаков препинания, поэтому я хотел бы, чтобы они были удалены с начала моей строки.

ответ

1

Вы можете соответствовать небуквы с категорией Unicode класса \P{L}:

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

Pattern детализирует:

  • \A - начало строки якоря
  • \P{L}+ - один или более (+) символы, отличные от букв (\P{L}).
+0

Это же регулярное выражение, но с немного отличающимся обозначением: '/ \ A \ p {^ L} + /' –

+0

Стоит отметить, что '^' означает начало строки в Ruby, а '\ A' означает начало строки. Версия '^', похоже, будет работать с однострочными строками, но ее можно легко спутать с символами новой строки. – tadman

 Смежные вопросы

  • Нет связанных вопросов^_^