正则表达式获取完整的名字和姓氏的第一个字母

Jas*_*rne 1 ruby regex

我有一个EtcRuby库抓取的用户列表:

Thomas_J_Perkins

Jennifer_Scanner

Amanda_K_Loso

Aaron_Cole

Mark_L_Lamb

我需要做的是获取完整的名字,跳过中间名(如果给出),并抓住姓氏的第一个字符.输出应如下所示:

托马斯P.

詹妮弗S.

阿曼达L.

亚伦C.

马克L.

我不知道该怎么做,我已经尝试抓住所有的角色了:/\w+/但这会抓住一切.

shi*_*vam 6

我认为没有正则表达式更简单:

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)


Ste*_*zyn 6

您并不总是需要正则表达式.

有些人在面对问题时会想"我知道,我会使用正则表达式".现在他们有两个问题.杰米·扎温斯基

您可以使用一些简单的Ruby代码来完成它

string = "Mark_L_Lamb"
string.split('_').first + ' ' + string.split('_').last[0]
=> "Mark L"
Run Code Online (Sandbox Code Playgroud)