按括号

时间:2016-03-04 03:19:09

标签: ruby string split

我有一个这样的字符串:

Adam Nguyen(adamnguyen)

获取两个字符串"Adam Nguyen""adamnguyen"的最佳方法是什么?

3 个答案:

答案 0 :(得分:5)

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

答案 1 :(得分:1)

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

答案 2 :(得分: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(/[()]/);