2016-03-04 2 views

ответ

1
name, username = /^(.*?)\s*\((.*)\)$/.match('Adam Nguyen (adamnguyen)').captures 
+1

это работает, спасибо много! –

4
"Adam Nguyen(adamnguyen)".split(/[()]+/) 
# => ["Adam Nguyen", "adamnguyen"] 
+1

большое вам спасибо! –

+0

Я попытался использовать '.split (/ [()] /)' и получить тот же результат. Не могли бы вы объяснить, что делает знак '+' в этом? Я плохо разбираюсь в «REGEX». 1+ –

+1

@GaganGami В этом примере нет ничего плохого с вашим регулярным выражением. Это позволяет избежать пустых строк. Просто чтобы быть в безопасности в более широком диапазоне примеров. – sawa

0

Дано:

name = 'Adam Nguyen(adamnguyen)'; 

Если вход всегда не хватает, как, например, и вы не выполняет эту операцию слишком много раз (т.е. производительность не является проблемой), я считаю, следующее, чтобы быть немного более многословным, но более понятным, чем регулярное выражение:

human_readable_name, other_name = name.split('(') 
other_name = other_name[0..-2] 

но если это необходимо масштабировать, регулярное выражение путь:

human_readable_name, other_name = name.split(/[()]/); 
+0

Вопрос о Ruby. Я думаю, что у вас есть другой язык. – sawa

+0

Я отвечал на вопросы JavaScript весь день. Вот что я пытаюсь переключить. Благодарю. –

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