Je souhaite extraire le texte avant la première virgule (nom et prénom) à partir de chaînes telles que:
John Smith, RN, BSN, MS
Thom Nev, MD
Foo Bar, MD,RN
J'ai essayé avec regex:
(.*)\s(.*),\s
mais cela ne fonctionne pas dans toutes les situations ... Comment y parvenir?
Correspond à tout depuis le début de la chaîne jusqu'à la première virgule:
^(.+?),
Que diriez-vous de: yourString.split(",")[0]
Vous devez utiliser des opérateurs regex non gloutons, essayez: (.+?),
au lieu de: (.+),
. Notez que lorsque vous utilisez des opérateurs gourmands, vous faites correspondre tout ce qui précède la dernière virgule au lieu de la première.
Que diriez-vous de ce qui suit:
[^,]*
[^,]*
signifie "faire correspondre un nombre quelconque de caractères qui ne sont pas des virgules", ce que je pense exactement ce que vous essayez de faire ici. Vous voudrez peut-être l'ancrer au début de la chaîne avec le ^
, comme ceci:
^[^,]*
^([^,])+
Cette expression rationnelle a fonctionné pour moi dans Sublime. Il a tout sélectionné juste avant la première virgule.
^[a-zA-Z0-9]+
..use this ... ceci est la bonne réponse pour obtenir la première valeur séparée par des virgules