Проверьте строку и верните динамическое количество изолированных слов.Php

Кемеровские программисты php общаются здесь
Anonymous
Проверьте строку и верните динамическое количество изолированных слов.

Сообщение Anonymous »

Я хотел бы проверить входную строку и извлечь из нее непредсказуемое количество подстрок с помощью одного шаблона регулярного выражения.
Пример строки:

Код: Выделить всё

location in [chambre, cuisine, salle-de-bain, jardin]
Всего за один шаг я хочу убедиться, что фигура представляет собой слово из [слово, слово, слово...], и мне хотелось бы перехватить каждое слово. (Для повышения производительности я хочу сделать это всего за один шаг, потому что этот код уже работает с тремя шагами, но он слишком длинный)
Мое текущее регулярное выражение:

Код: Выделить всё

/([a-zA-Z]+)\s+in\s+\[\s*([a-zA-Z-]+)\s*(?:,\s*([a-zA-Z-]+)\s*)*\s*\]/
Я улавливаю местоположение, палату и сад. Я не улавливаю кухню и саль-де-бен.

Код: Выделить всё

$condition = 'location in [chambre, cuisine, salle-de-bain, jardin]';
preg_match('/([a-zA-Z]+)\s+in\s+\[\s*([a-zA-Z-]+)\s*(?:,\s*([a-zA-Z-]+)\s*)*\s*\]/', $condition, $matches);
var_dump($matches);

Код: Выделить всё

array:4 [▼
0 => "location in [chambre, cuisine, salle-de-bain, jardin]"
1 => "location"
2 => "chambre"
3 => "jardin"
]
Я не нашел ошибок в моем регулярном выражении, позволяющем уловить два пропущенных слова. Я получаю только первый и последний в массиве.


Подробнее здесь: https://stackoverflow.com/questions/721 ... ated-words

Вернуться в «Php»