[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Требуется помощь в расширении регулярки
Страницы: 1, 2
venture
из приведенных строк должны получаться указанные массивы.

[Читать|gimnastika#features|button]
Array
(
[0] => Array
(
[0] => [Читать|gimnastika#features|button]
[1] => Читать
[2] => gimnastika
[3] => features
[4] => button
)
)

[Читать|gimnastika#features]
Array
(
[0] => Array
(
[0] => [Читать|gimnastika#features]
[1] => Читать
[2] => gimnastika
[3] => features
)
)


[gimnastika#features]
Array
(
[0] => Array
(
[0] => [gimnastika#features]
[1] =>
[2] => gimnastika
[3] => features
)
)

[gimnastika]
Array
(
[0] => Array
(
[0] => [gimnastika]
[1] =>
[2] => gimnastika
)
)
OleKh
Цитата (venture @ 6.05.2014 - 13:22)
в данных массивах переменные меняют свое положение в самом массиве.


В массивах нет переменных.

Переменная $str_arr содержит массив в котором исходные строки.
Переменна $matches содержит массив в котором результаты поиска.

Короче говоря, нужен элемент gimnastika чтобы был с ключом 2. Можно сделать и так, а можно по другому, подсчитывать кол-во элементов, если 5 и 4, тогда ключ 2, а если 3 и 2, ключ 1.


venture
указанные строки разные , но дают массив из трех элементов.
	'[Читать|gimnastika]',
'[gimnastika#features|button]',
'[gimnastika#features]',
'[gimnastika|button]'


как понять где гимнастика. вместо gimnastika может быть другое слово.
[4] => Array
(
[0] => [������|gimnastika]
[1] => ������
[2] => gimnastika
)

[5] => Array
(
[0] => [gimnastika#features|button]
[1] => gimnastika
[2] => features|button
)

как понять каким должен быть третий элемент массива если гимнастика - второй. в 6 массиве 2 должен быть пустой элемент, а третий - баттон. учитывая, что слова в #features|button могут быть совершенно другими, то проверять на схожесть не получится
[2] => Array
(
[0] => [gimnastika#features]
[1] => gimnastika
[2] => features
)
[6] => Array
(
[0] => [gimnastika|button]
[1] => gimnastika
[2] => button
)

OleKh
Цитата (venture @ 6.05.2014 - 14:07)
как понять где гимнастика.


Очень хочется помочь), НО не получается (.

Как же так выходит, что с первого сообщения до последнего постоянно меняется исходное условие.

[Читать|gimnastika#features|button]
[gimnastika#features|button]
[gimnastika#features]

вот тут гимнастика может получиться такой регуляркой

\|?([^\#]+)\#


[gimnastika]
[balet]
[eggs]

а тут уже не выйдет

[Читать|gimnastika]
[gimnastika|button]

тут тоже заморочка
venture
Действительно, оба выражения одинаковые. Если расположение текста
[Читать|gimnastika#features|button]
На
[gimnastika#features|читать|button]
В таком случае обязательное первое значение, а третье опосредовано вторым.
Структура данных значений
[Ссылка#заголовок|название|класс обьекта]
Получится переделать указанную регулярку из первого поста?
venture
остановился на такой регулярке:
"#\[([^\]\"\|]+)(?:\|([^\]\|]+))?(?:\|([^\]]+))?\]#"


    [0] => Array
(
[0] => [Читать|gimnastika#features|button]
[1] => Читать
[2] => gimnastika#features
[3] => button
)


с последующим поиском шарпа #
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.