У меня есть вариант строк, которые выглядят так:
First rounder 'John Smith' had a good game.
Second rounder 'Jim O'Rielly' is on fire!
В конечном итоге я хочу получить оба имени между кавычками John Smith
и Jim O'Rielly
, однако сложная часть состоит из имен которые включают апостроф, как второй.
Я изначально использовал '/\'([^\']*)\'/'
, чтобы получить текст внутри кавычек, но не работает для второго случая - это вернуло бы только Jim O
.
Затем я подумал использовать .+?(?=had)
, чтобы привести все к слову had
, но оно должно быть либо had
, либо is
, и мне не нужны слова First rounder
и т. Д. c.
Мне нужно по существу объединить их, чтобы я мог получить только текст внутри кавычек, но ВВЕРХ ДО слова had
или is
, и я просто хочу текст без кавычек.
Если не существует хитрости, позволяющей получить второй вариант, игнорирующий апостроф в имени (я думал добавить addSlashes (), но как узнать, к какому апострофу следует добавить косую черту?), Кто-нибудь может предложить лучшее решение это ? Бонусные баллы за игнорирование любых специальных символов, которые я не рассматриваю, могут быть найдены в имени:)