powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Регулярное выражение - поиск содержимого квадратных скобок
7 сообщений из 7, страница 1 из 1
Регулярное выражение - поиск содержимого квадратных скобок
    #39259629
Фотография enakenenaken
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день!

Пытаюсь сделать регулярное выражение:

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
<?
$word = "[Цвет:Зелёный][Фрукт:Яблоко][Вкус:Сладкий]";

$word = preg_quote($word);

preg_match($word, '[.]', $arr_result);

print_r($arr_result);
?>



По идее в массиве должно быть следующее:
Цвет:Зелёный
Фрукт:Яблоко
Вкус:Сладкий

Но в итоге лишь ошибка "preg_match() [function.preg-match]: Delimiter must not be alphanumeric or backslash". Почему? Погуглил ошибку, честно, вообще не понял. Какой алфавит? Какой разделитель? Тут это при чём... Если кто может помочь, хотя бы намекните. Спасибо!
...
Рейтинг: 0 / 0
Регулярное выражение - поиск содержимого квадратных скобок
    #39259676
SharuPoNemnogu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вы бы доку посмотрели по функции, первым идет паттерн

Код: php
1.
preg_match_all('/([\w:]+)/iu', $word, $arr_result);
...
Рейтинг: 0 / 0
Регулярное выражение - поиск содержимого квадратных скобок
    #39259837
Фотография enakenenaken
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SharuPoNemnogu,

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
<?

$word = "[one:first];[two:second];";

$result = preg_match("/\[.+\:.+\]\;/", $word, $arr_result);

print_r($arr_result);

?>



Сделал по документации. По идее должен получить:
[one:first]
[two:second]

А получаю:
Array ( [0] => [one:first];[two:second]; )

Что я делаю не так?
...
Рейтинг: 0 / 0
Регулярное выражение - поиск содержимого квадратных скобок
    #39259839
SharuPoNemnogu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
enakenenaken,

я ж написал выше
а у вас регулярка соответствует "[ любые символы двоеточие любые символы ]"
в итоге вы и получаете все
...
Рейтинг: 0 / 0
Регулярное выражение - поиск содержимого квадратных скобок
    #39259882
Фотография enakenenaken
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SharuPoNemnogu,

Добавил в выражение /\[[a-z][^:]+\:[a-z][^:]+\]/ строку [^:] чтобы двоеточие не учитывалось как часть вообще всего.
Но выводится для выражения "[one:first][two:second]"
только [one:first].

Почему он не понимает второе выражение?
...
Рейтинг: 0 / 0
Регулярное выражение - поиск содержимого квадратных скобок
    #39259900
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да проще ж
Код: php
1.
2.
3.
4.
<?php
$word = "[Цвет:Зелёный][Фрукт:Яблоко][Вкус:Сладкий]";
preg_match_all('/\[([^\]]+)\]/', $word, $matches);
var_dump($matches[1]);


На выходе:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
array(3) {
  [0]=>
  string(23) "Цвет:Зелёный"
  [1]=>
  string(23) "Фрукт:Яблоко"
  [2]=>
  string(23) "Вкус:Сладкий"
}
...
Рейтинг: 0 / 0
Регулярное выражение - поиск содержимого квадратных скобок
    #39259904
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А впрочем, можно ещё проще:
Код: php
1.
2.
3.
4.
<?php
$word = "[Цвет:Зелёный][Фрукт:Яблоко][Вкус:Сладкий]";
$result = explode('][', trim($word, '[]'));
var_dump($result);

На выходе то же самое.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Регулярное выражение - поиск содержимого квадратных скобок
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]