Строка соответствия всех заглавных букв, которая может состоять из 1 или более слов, имеет и имеет как минимум 2 пробела перед ней - PullRequest
0 голосов
/ 18 октября 2019

Мне нужно разобрать имена из файла PDF. Все имена всегда в верхнем регистре и могут состоять из 1 или более слов, например CHUBBY BOY или MIKE. Они также имеют отступ, поэтому перед именами есть пробелы.

preg_match('/(?=[A-Z]{2,})([A-Z]+)/', $removedStar, $mymatches)

становится довольно близко.

if ( preg_match('/(?=[A-Z]{2,})([A-Z]+)/', $removedStar, $mymatches)) {
    $name_value = $removedStar;
    $nameValues[$nameCount] = $mymatches[0];
    $nameCount++;
}

Эти строки являются выходными данными $ removeStar

EXT,HOME FOR INSANE - PARKING LOT - ТО ЖЕ ВРЕМЯ

12 12

СТАРЫЙ DATSUN взрывает хард-рок на дерьмовых динамиках -

та же самая песня - Enjoyed!

МОЛОДЫЕ ПОДРОСТКИ: Пьяный, Джок и пухлый мальчик,

тряся головой и пьяный на стоянке -

ЧАББИ МАЛЬЧИК

Тсс тихо! Слушайте -

5.

ОНИ СЛЫШАЮТ КРИК В ДИСТАНЦИИ. ОНИ ТИХАЮТ -

Пьяный ребенок, держащий пиво, Хихикает -

Пьяный ребенок

Триппи.

это на самом деле становится еще ближе

strtoupper($removedStar) == $removedStar 

1 Ответ

0 голосов
/ 18 октября 2019

Вы ищете что-то подобное?

(?:  )([A-Z]+[A-Z ]*[A-Z])
  • Две группы, первая из них состоит из двух пробелов, но не записана
  • Как минимум одна заглавная буква
  • За ним следует столько же заглавных букв или пробелов
  • Окончание заглавной буквы

https://regexr.com/4n4u6

Не соответствует одиночным символам, но, похоже, вам это не нужно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...