@FlatUser

Как написать регулярное выражение (найти все слова игнорируя то что между ними)?

Есть такая строка.
organizationName (X.520 DN component)    UTF8String  Apple inc.  end


Получится должно.
Apple inc. 
Как она должна работать:
-> находим organizationName
[игнорируем любые символы между]
-> находим UTF8String
/ делаем маркер в конце UTF8String--->| Apple inc.  |<---end и в начале слова end
-> Получаем фразу Apple inc.

моя регулярка выделяет все полностью
organizationName(.*?)UTF8String(.*?)end

Как создать такое регулярное выражение которые бы отталкивалось от слов и игнорировало междустрочия?
  • Вопрос задан
  • 53 просмотра
Решения вопроса 3
@ClownSergo
Твоя регулярка работает. Просто "Apple inc." находится во второй группе.
https://regex101.com/r/dKyASJ/1
Ответ написан
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
/organizationName.*?UTF8String\s+(.*?)\s+end/
Ответ написан
Комментировать
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
https://regex101.com/r/hJq8su/1
$re = '/organizationName.*UTF.+?\s+(.*[^\s]+)\s/m';
$str = 'organizationName (X.520 DN component)    UTF8String  Apple inc sdfs dfjgkhkd  end';

preg_match_all($re, $str, $matches, PREG_SET_ORDER, 0);

// Print the entire match result
var_dump($matches);


Для мультистрок, дописываем флаг s в конец регулярки:
$re = '/organizationName.*UTF.+?\s+(.*[^\s]+)\s/ms';
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы