43

我想从以下字符串中提取第一个逗号(名字和姓氏)之前的文本:

John Smith, RN, BSN, MS
Thom Nev, MD
Foo Bar, MD,RN

我尝试使用正则表达式:

(.*)\s(.*),\s

但这并不适用于所有情况。如何做到这一点?

4

6 回答 6

103

匹配从字符串开头到第一个逗号的所有内容:

^(.+?),
于 2012-08-27T20:04:54.123 回答
35

怎么样:yourString.split(",")[0]

于 2012-08-27T20:07:53.727 回答
21
^([^,])+

这个正则表达式在 Sublime 中为我工作。它选择了第一个逗号之前的所有内容。

于 2018-04-17T23:54:19.303 回答
11

以下情况如何:

[^,]*

[^,]*意思是“匹配任意数量的非逗号字符”,我认为这正是你在这里想要做的。您可能希望将其锚定到字符串 iwth 的开头^,如下所示:

^[^,]*
于 2012-08-27T20:04:27.960 回答
6

您必须使用非贪婪的正则表达式运算符,尝试:(.+?),而不是:(.+),。请注意,当使用贪婪运算符时,您将匹配最后一个逗号之前的所有内容,而不是第一个。

于 2012-08-27T20:10:38.000 回答
-2
^[a-zA-Z0-9]+ 

..使用这个...这是获得第一个逗号分隔值的正确答案

于 2013-10-17T09:31:48.423 回答