我想在第一个逗号(名字和姓氏)之前从字符串中提取文字,如:
John Smith, RN, BSN, MS
Thom Nev, MD
Foo Bar, MD,RN
我尝试使用正则表达式:
(.*)\s(.*),\s
但这并不适用于所有情况。 怎么做到这一点?
答案 0 :(得分:58)
匹配从字符串开头到第一个逗号的所有内容:
^(.+?),
答案 1 :(得分:18)
如何:yourString.split(",")[0]
答案 2 :(得分:6)
您必须使用非贪婪的正则表达式运算符,请尝试:(.+?),
而不是:(.+),
。请注意,使用贪婪的运算符时,您将匹配最后一个逗号而不是第一个逗号之前的所有内容。
答案 3 :(得分:5)
以下内容如何:
[^,]*
[^,]*
表示“匹配任意数量的非逗号字符”,我认为这正是您在此尝试做的。您可能希望将其锚定到字符串^
的开头,如下所示:
^[^,]*
答案 4 :(得分:3)
^([^,])+
这个正则表达式在Sublime中为我工作。它选择了第一个逗号之前的所有内容。
答案 5 :(得分:0)
^[a-zA-Z0-9]+
..使用此...这是获得第一个逗号分隔值的正确答案
答案 6 :(得分:-2)
非正则表达式解决方案:
str = 'John Smith, RN, BSN, MS'
p str[0, str.index(',')] #=>"John Smith"