Подтвердить что ты не робот

Извлечение текста перед первой запятой с регулярным выражением

Я хочу извлечь текст перед первой запятой (имя и фамилия) из строк, например:

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

Я попытался с регулярным выражением:

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

но это не работает для всех ситуаций. Как достичь этого?

4b9b3361

Ответ 1

Сопоставьте все с начала строки до первой запятой:

^(.+?),

Ответ 2

Как насчет: yourString.split(",")[0]

Ответ 3

Вы должны использовать не жадные операторы регулярных выражений, попробуйте: (.+?), вместо: (.+),. Обратите внимание, что при использовании жадных операторов вы будете сопоставлять все до последней запятой вместо первой.

Ответ 4

Как насчет следующего:

[^,]*

[^,]* означает "соответствовать любому количеству символов, которые не являются запятыми", что я считаю именно тем, что вы пытаетесь сделать здесь. Вы можете привязать его к началу строки iwth ^, например:

^[^,]*

Ответ 5

^[a-zA-Z0-9]+ 

.. используйте это... это правильный ответ, чтобы получить значение, разделенное запятыми

Ответ 6

Решение без регулярных выражений:

str = 'John Smith, RN, BSN, MS'
p str[0, str.index(',')] #=>"John Smith"