我有一个EtcRuby库抓取的用户列表:
Thomas_J_Perkins
Jennifer_Scanner
Amanda_K_Loso
Aaron_Cole
Mark_L_Lamb
我需要做的是获取完整的名字,跳过中间名(如果给出),并抓住姓氏的第一个字符.输出应如下所示:
托马斯P.
詹妮弗S.
阿曼达L.
亚伦C.
马克L.
我不知道该怎么做,我已经尝试抓住所有的角色了:/\w+/但这会抓住一切.
我认为没有正则表达式更简单:
array = "Thomas_J_Perkins".split("_") # split at _
array.first + " " + array.last[0] # .first prints first name .last[0] prints first char of last name
#=> "Thomas P"
Run Code Online (Sandbox Code Playgroud)
您并不总是需要正则表达式.
有些人在面对问题时会想"我知道,我会使用正则表达式".现在他们有两个问题.杰米·扎温斯基
您可以使用一些简单的Ruby代码来完成它
string = "Mark_L_Lamb"
string.split('_').first + ' ' + string.split('_').last[0]
=> "Mark L"
Run Code Online (Sandbox Code Playgroud)