Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Помогите с регуляркой. / 8 сообщений из 8, страница 1 из 1
19.01.2016, 17:34
    #39150840
dsgdfgdfgdfgd
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с регуляркой.
Помогите пожалуйста с регуляркой.
Текст такой.


Это первый блок. Все символы. Русские и англ. Точки. Цифры. Мат.Операции.Пробелы.Табуляции.Перенос строки.и т.д.
1234567890/*-+АБВ-Яабв-я.ABC-Zabc-z

-----------------------------------------------------------------

Это второй блок. Все символы. Русские и англ. Точки. Цифры. Мат.Операции.Пробелы.Табуляции.Перенос строки.и т.д.
1234567890/*-+АБВ-Яабв-я.ABC-Zabc-z

-----------------------------------------------------------------

Это n-блок. Все символы. Русские и англ. Точки. Цифры. Мат.Операции.Пробелы.Табуляции.Перенос строки.и т.д.
1234567890/*-+АБВ-Яабв-я.ABC-Zabc-z

-----------------------------------------------------------------




Нужно взять первый блок - выделен зеленым цветом. Разделитель между блоками это 65 черточек (знаки минус если не ошибаюсь). Слова "Это первый блок" и т.д. в тексте нет, просто вставил для легкого восприятия.
Над началом каждого блока символ новой строки, в том числе над первым. Перенос строки над блоком и под блоком брать не надо.
...
Рейтинг: 0 / 0
19.01.2016, 18:22
    #39150891
SharuPoNemnogu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с регуляркой.
dsgdfgdfgdfgd,
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
$str = "

1-1234567890/*-+АБВ-Яабв-я.ABC-Zabc-z

-----------------------------------------------------------------

2-1234567890/*-+АБВ-Яабв-я.ABC-Zabc-z

-----------------------------------------------------------------

3-1234567890/*-+АБВ-Яабв-я.ABC-Zabc-z

-----------------------------------------------------------------

";

$item = explode('-----------------------------------------------------------------', $str);
$item = trim(array_shift($item));
echo "<pre>";
var_dump($item);
echo "</pre>";

echo "<pre>";
var_dump(explode("\n", $str)[2]);
echo "</pre>";

//string(37) "1-1234567890/*-+АБВ-Яабв-я.ABC-Zabc-z"
//string(37) "1-1234567890/*-+АБВ-Яабв-я.ABC-Zabc-z"
...
Рейтинг: 0 / 0
19.01.2016, 18:44
    #39150912
dsgdfgdfgdfgd
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с регуляркой.
SharuPoNemnogu,

нужно именно регуляркой. т.к. я использую это вне php, просто другого раздела для своей темы не нашел.
сделал такую:

Код: css
1.
(?!\s{2,})[\W\d\w](?!\r)(?!-{2,})



но она берет от черточек разделителей два последних символа. и помимо этого берет все вхождения, а мне нужно только первое.
...
Рейтинг: 0 / 0
19.01.2016, 22:29
    #39150997
SharuPoNemnogu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с регуляркой.
так тебе нужна вся эта кракозябра, или только буквы цифры? И где ты ее используешь? твой вариант ничего не находит. Если все равно какой символ, то вот так
...
Рейтинг: 0 / 0
19.01.2016, 23:21
    #39151009
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с регуляркой.
dsgdfgdfgdfgdнужно именно регуляркой. т.к. я использую это вне phpВ каком ЯП, если не секрет? Функционал, подобный split, не являются уникальным для "только php".
...
Рейтинг: 0 / 0
20.01.2016, 11:37
    #39151260
dsgdfgdfgdfgd
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с регуляркой.
vkle, там вообще не яп. там программа ZennoPoster, внутри которой составляются скипты блок схемами.
мне ответили на форуме

// Найти первый блок
preg_match('@\s++\K((?:(?!(\r?\n){0,2}-{65})\r?\n?[^\r\n]*)++)@', $text, $match);
print_r($match[1]);

// Замениь только первый блок
$text = preg_replace('@\s++\K((?:(?!(\r?\n){0,2}-{65})\r?\n?[^\r\n]*)++)@', 'text', $text, 1);

это работает внутри PHP, но в моем случае опять таки не работает..
...
Рейтинг: 0 / 0
20.01.2016, 13:53
    #39151431
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с регуляркой.
dsgdfgdfgdfgdэто работает внутри PHP, но в моем случае опять таки не работаетТакое довольно часто бывает. В текстовых редакторах, например.

А что-то вроде такого не получится?
Код: php
1.
'/^(.+)-----------------------------------------------------------------/Um'
...
Рейтинг: 0 / 0
21.01.2016, 03:58
    #39151901
volodin661
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с регуляркой.
dsgdfgdfgdfgd,


Код: php
1.
\n+(.+?)\n+[-]{65}



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


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