【发布时间】:2016-03-04 03:19:08
【问题描述】:
我有一个这样的字符串:
Adam Nguyen(adamnguyen)
获取两个字符串"Adam Nguyen" 和"adamnguyen" 的最佳方法是什么?
【问题讨论】:
我有一个这样的字符串:
Adam Nguyen(adamnguyen)
获取两个字符串"Adam Nguyen" 和"adamnguyen" 的最佳方法是什么?
【问题讨论】:
"Adam Nguyen(adamnguyen)".split(/[()]+/)
# => ["Adam Nguyen", "adamnguyen"]
【讨论】:
.split(/[()]/),仍然得到相同的结果。您能解释一下+ 签名在其中的作用吗?我不擅长REGEX。 1+
name, username = /^(.*?)\s*\((.*)\)$/.match('Adam Nguyen (adamnguyen)').captures
【讨论】:
给定:
name = 'Adam Nguyen(adamnguyen)'
如果输入总是像示例一样很短并且您没有执行此操作太多次(即性能不是问题),并且字符串的格式保证不会改变,我发现以下内容是比正则表达式稍微冗长,但更容易理解:
human_readable_name, other_name = name.split('(')
other_name = other_name[0..-2]
但如果需要扩展,正则表达式是可行的方法:
human_readable_name, other_name = name.split(/[()]+/);
【讨论】: