Это следующее, я полагаю, применяет регулярное выражение, как используется в Python.Если есть другой способ сделать это вне регулярного выражения, я открыт для этого.
Мне нужно преобразовать строку этого формата:
'{First_name1} and {First_name2 Last_name}'
(i.e. John and Mary Jones)
в:
'{First_name1 Last_name2}, {First_name2 Last_name2}
(i.e. John Jones, Mary Jones)
Будучи новичком в регулярных выражениях, это один шаблон, который озадачил меня.Я предполагаю, что мне придется найти экземпляры всего сегмента, захватить фамилию и использовать .sub (), чтобы добавить копию в нужное место?
РЕДАКТИРОВАТЬ: Хотярешения, представленные до сих пор, отвечают на этот вопрос, я подумал, что упомянул, что нашел еще одну ситуацию, которая до сих пор попадалась на решения.Это следующее:
{First_name1 Last_name1, and First_name2, Last_name2}
Извиняюсь за то, что не видел (и, следовательно, написал в моем исходном вопросе) этот образец раньше.
Пока что я изменил один из ответов, чтобы получить это далеко:
([^,]+)(?!\W,)( and [^ ]+ )([^ ]+)
Я думал, что фильтрую на основе этой запятой в этой последнейпример.Я думаю, что если запятая присутствует, то я хочу перейти к следующему случаю.Это имеет смысл?