Вложенный класс символов регулярного выражения POSIX в Ruby?

Как вложить класс символов в стиле POSIX в другой класс символов?

Я пытаюсь заменить совпадение пробела или тире:

/[\s-]/

с

/[[[:space:]]-]/

И это не работает. Я использую Ruby 1.9.3, а в официальном документе нет примеров вложения. Мне нужен стиль POSIX, потому что я работаю с UTF-8, и мои примеры не соответствуют реальным выражениям.

Спасибо за любую помощь!

1 ответ

Ваш третий набор [] не нужен.

Объявление [:space:] допустимо только внутри набора, поэтому вы увидите его как [[:space:]], если оно используется само по себе. В этом случае у вас будет больше символов, поэтому будет работать следующее.

[[:space:]-]
Другие вопросы по тегам