2 место Регулярные выражения, что это такое и с чем их едят?

doc

Client
Регистрация
30.03.2012
Сообщения
8 684
Благодарностей
4 641
Баллы
113

Sapfire65

Client
Регистрация
05.06.2016
Сообщения
103
Благодарностей
22
Баллы
18
Эх просто мне не дается что то эта наука.
 

ZennoScript

Moderator
Регистрация
04.03.2011
Сообщения
4 451
Благодарностей
1 885
Баллы
113
Эх просто мне не дается что то эта наука.
Внимательно читайте, пробуйте и со временем получится.
Тут нельзя один раз прочитать и выучить. Тут нужно пробовать и со временем придёт понимание.
 
  • Спасибо
Реакции: Sapfire65
Регистрация
08.07.2015
Сообщения
2 848
Благодарностей
712
Баллы
113
Эх просто мне не дается что то эта наука.
просто нужно не тупо прочитал и забыл ))) а прочитал и 20 примеров сделал, а лучше как ДОК делать! Помогай на форуме всем незнающим и через некоторое время ты обнаружишь, что стал гуру регулярок )))
 
  • Спасибо
Реакции: Sapfire65

Sapfire65

Client
Регистрация
05.06.2016
Сообщения
103
Благодарностей
22
Баллы
18
просто нужно не тупо прочитал и забыл ))) а прочитал и 20 примеров сделал, а лучше как ДОК делать! Помогай на форуме всем незнающим и через некоторое время ты обнаружишь, что стал гуру регулярок )))
Дело в том, что новый предмет разные учителя могут преподавать по своему. Я привык воспринимать новую информацию с подробными примерами. Мол есть текст, вот он. Нужно получить результат вот этот. И разбор методов составления регулярок, по данному конкретному случаю. И обсуждение различий методов.

Так как написано в вики - это сложно для моего понимания. Слижком узкое описание без так сказать "приближенных боевых условий".
Прочитав вики я понял только 30% примерно. Причем понял я всего лишь правила. А для чего я могу применить тот или иной вариант регулярного выражения не очень понятно.
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 684
Благодарностей
4 641
Баллы
113
Дело в том, что новый предмет разные учителя могут преподавать по своему. Я привык воспринимать новую информацию с подробными примерами. Мол есть текст, вот он. Нужно получить результат вот этот. И разбор методов составления регулярок, по данному конкретному случаю. И обсуждение различий методов.

Так как написано в вики - это сложно для моего понимания. Слижком узкое описание без так сказать "приближенных боевых условий".
Прочитав вики я понял только 30% примерно. Причем понял я всего лишь правила. А для чего я могу применить тот или иной вариант регулярного выражения не очень понятно.
ну в начале топика всё с примерами
 
  • Спасибо
Реакции: masterLomaster
Регистрация
08.07.2015
Сообщения
2 848
Благодарностей
712
Баллы
113
Дело в том, что новый предмет разные учителя могут преподавать по своему. Я привык воспринимать новую информацию с подробными примерами. Мол есть текст, вот он. Нужно получить результат вот этот. И разбор методов составления регулярок, по данному конкретному случаю. И обсуждение различий методов.

Так как написано в вики - это сложно для моего понимания. Слижком узкое описание без так сказать "приближенных боевых условий".
Прочитав вики я понял только 30% примерно. Причем понял я всего лишь правила. А для чего я могу применить тот или иной вариант регулярного выражения не очень понятно.
на ютубе видики поищи если написанное плохо воспринимаешь, сам так делаю!
зы: ты с Сахалина?
ну в начале топика всё с примерами
иногда нужно наглядно и с кучей примеров чтобы понять, но в большинстве случаев нужна просто практика, так как просто смотреть бесполезно!
Правильно говорят, чтобы через руки доходило, тоесть пока сам 50 раз не сделаешь то и не поймешь!
 

Sapfire65

Client
Регистрация
05.06.2016
Сообщения
103
Благодарностей
22
Баллы
18
Я с Волгоградской области. Дело не в гео-локации XD а типе мышления.
Про себя знаю одно, постигаю в деталях. Зато патом не забуду никогда.

Тип мышления формируется на основе учителей. Которые встречаются на жизненном пути.
 

Dimionix

Moderator
Регистрация
09.04.2011
Сообщения
3 068
Благодарностей
3 122
Баллы
113
  • Спасибо
Реакции: Sapfire65
Регистрация
08.07.2015
Сообщения
2 848
Благодарностей
712
Баллы
113
  • Спасибо
Реакции: A1ex

Sapfire65

Client
Регистрация
05.06.2016
Сообщения
103
Благодарностей
22
Баллы
18
Ох тыж ёЁжик :-) СПАСИБО! обязательно все гляну.
 

Sapfire65

Client
Регистрация
05.06.2016
Сообщения
103
Благодарностей
22
Баллы
18
Ребят, уже долго мучаюсь. Не получается у меня регулярочка одна. Может кто знает такую.

Я хочу привести небольшой массив текста в порядок. Из текста как говорят СТЕНОЙ.
Хотелось бы указать рандомное количество точек, вопросительных и восклицательных знаков. Что отвечают за конец предложения.
И заменить их на {-String.Enter-}{-String.Enter-}

Точнее сказать что нужно найти пробел, например 4й, перед которым был знак препинания. И что бы после знака был пробел или заглавная буква.
На случай слитного текста.
 

Sapfire65

Client
Регистрация
05.06.2016
Сообщения
103
Благодарностей
22
Баллы
18
И так, те кто искал и не смог найти решение на мой вопрос выше.
Человек, не человек а ЧЕЛОВЕЧИЩЕ! Любезно написал скриптик на C#
http://zennolab.com/discussion/members/dmitrybyapple.9079/

А вот и сам скрипт:

Random rnd = new Random();
int leng = rnd.Next(150, 2000);
string text = project.Variables["text"].Value;
string st = "";

do
{
string tes = "";
if (text.Length > leng)
{
tes = "\r\n" + "\r\n" + "\t" + text.Substring(0, leng);
text = text.Substring(leng);


int[] mas = { 0, 0, 0 };

int a0 = mas[0] = text.Split('.')[0].Length;
int a1 = mas[1] = text.Split('!')[0].Length;
int a2 = mas[2] = text.Split('?')[0].Length;

int min = mas.Min();

if (min == a0)
{
tes += text.Split('.')[0] + ".";
st += tes;
int sub = text.Split('.')[0].Length + 2;
if (text.Length > sub)
text = text.Substring(sub);
}

if (min == a1)
{
tes += text.Split('!')[0] + "!";
st += tes;
int sub = text.Split('.')[0].Length + 2;
if(text.Length > sub)
text = text.Substring(sub);
}

if (min == a2)
{
tes += text.Split('?')[0] + "?";
st += tes;
int sub = text.Split('.')[0].Length + 2;
if (text.Length > sub)
text = text.Substring(sub);
}

}
else
{
//tes = "\r\n" + "\t" + text;
//st += tes;
project.Variables["text_1"].Value = st.Substring(4);
return "ok";
}
} while (true == true);


Спасибо ему огромное за без отказность человеческую! Не первый раз выручает.
 
  • Спасибо
Реакции: A1ex и kagorec

kagorec

Client
Регистрация
24.08.2013
Сообщения
979
Благодарностей
523
Баллы
93
Вставь в тег кода, чтоб правильно отображалось. И будь добр вкратце опиши что сие творение делает с текстом?
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 684
Благодарностей
4 641
Баллы
113
Вставь в тег кода, чтоб правильно отображалось. И будь добр вкратце опиши что сие творение делает с текстом?
похоже на нарезку текста кусками рандомной длины по концу предложения. Крайне вычурным способом
 
  • Спасибо
Реакции: kagorec

kagorec

Client
Регистрация
24.08.2013
Сообщения
979
Благодарностей
523
Баллы
93
А ну это же одна регулярка по нарезке твитов из объемной статьи.
Код:
([A-ZА-Я]+) ([^\.\?\!]{50,145})(\. |! |\? )
на
$1 $2
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 684
Благодарностей
4 641
Баллы
113
А ну это же одна регулярка по нарезке твитов из объемной статьи.
Код:
([A-ZА-Я]+) ([^\.\?\!]{50,145})(\. |! |\? )
на
$1 $2
ну там длина куска рандомится от 150 до 2000 символов. Одной регуляркой такое не замутить. Цикл нужен
 

Sapfire65

Client
Регистрация
05.06.2016
Сообщения
103
Благодарностей
22
Баллы
18
Сие творение дробит большой текст на рандомной длинны обзацы. С табуляцией. По окончанию предложения, да. Количество рандома регулируеться. Не всегда сробатывает корректно но в 90% случаев то что нужно. Всмысле не срабатывает корректно кагда ставиш доугой рандом. Один раз настроил как нужно и все. Мне очень понравилось как работает скрипт. Так как сам ни C# не пишу.
 

Sapfire65

Client
Регистрация
05.06.2016
Сообщения
103
Благодарностей
22
Баллы
18
Мне это было нужно для разбивки большого сплошного текста в читабильный формат.
 

ZennoScript

Moderator
Регистрация
04.03.2011
Сообщения
4 451
Благодарностей
1 885
Баллы
113
Делал для таких целей шаблон когда то.
Формирование из большого непонятного текста случайных предложений, абзацев, внутренних списков и таблиц. С чисткой тошноты, расстановкой ключей и т.д.
 

A1ex

Client
Регистрация
27.09.2016
Сообщения
35
Благодарностей
1
Баллы
8

ZennoScript

Moderator
Регистрация
04.03.2011
Сообщения
4 451
Благодарностей
1 885
Баллы
113
А куда вставить переменную в которой находится текст {-Variable.Variable1-} ???
в строке string text = project.Variables["text"].Value;

text - это имя переменной, из которой берутся данные.
 

A1ex

Client
Регистрация
27.09.2016
Сообщения
35
Благодарностей
1
Баллы
8
string text = project.Variables["{-Variable.Variable1-}"].Value;
-так пробовал выдает ошибку (Выполнение действия CSharp OwnCode No Such Variable)
Пробую другую переменную- выдает ошибку "Компиляция кода. Ошибка в действии "CS....."...

Может, то что работаю в версии 5.9.9.1
Ну да ладно. Не буду топик засорять.
 

ZennoScript

Moderator
Регистрация
04.03.2011
Сообщения
4 451
Благодарностей
1 885
Баллы
113
string text = project.Variables["{-Variable.Variable1-}"].Value;
-так пробовал выдает ошибку (Выполнение действия CSharp OwnCode No Such Variable)
Пробую другую переменную- выдает ошибку "Компиляция кода. Ошибка в действии "CS....."...

Может, то что работаю в версии 5.9.9.1
Ну да ладно. Не буду топик засорять.
string text = project.Variables["Variable1"].Value;
 
  • Спасибо
Реакции: A1ex

A1ex

Client
Регистрация
27.09.2016
Сообщения
35
Благодарностей
1
Баллы
8
Вдруг найдется такой же неуч в C++ как я. :-)
string text = project.Variables["Variable1"].Value; /*за место Variable1 прописываем название своей переменной откуда брать текст,если {-Variable.text_original-} , то прописываем text_original. */
project.Variables["text_sabzacami"].Value = st.Substring(4); /*за место text_sabzacami прописываем название своей переменной куда положить текст с абзацами,если {-Variable.text_sabzacami-} , то прописываем text_sabzacami. */
 

A1ex

Client
Регистрация
27.09.2016
Сообщения
35
Благодарностей
1
Баллы
8
([A-Za-z0-9-]+) Буквы, числа и знаки переноса
(\d{1,2}\/\d{1,2}\/\d{4}) Дата (напр., 21/3/2006)
([^\s]+(?=\.(jpg|gif|png))\.\2) Имя файла jpg, gif или png
(^[1-9]{1}$|^[1-4]{1}[0-9]{1}$|^50$) Любое число от 1 до 50 включительно
(#?([A-Fa-f0-9]){3}(([A-Fa-f0-9]){3})?) Шестнадцатиричный код цвета
((?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,15}) От 8 до 15 символов с минимум одной цифрой, одной заглавной и одной строчной буквой (полезно для паролей).
(\w+@[a-zA-Z_]+?\.[a-zA-Z]{2,6}) Адрес email
(\<(/?[^\>]+)\>) HTML теги

Хорошая шпаргалка по регулярным выражениям.
 

Вложения

doc

Client
Регистрация
30.03.2012
Сообщения
8 684
Благодарностей
4 641
Баллы
113
([A-Za-z0-9-]+) Буквы, числа и знаки переноса
(\d{1,2}\/\d{1,2}\/\d{4}) Дата (напр., 21/3/2006)
([^\s]+(?=\.(jpg|gif|png))\.\2) Имя файла jpg, gif или png
(^[1-9]{1}$|^[1-4]{1}[0-9]{1}$|^50$) Любое число от 1 до 50 включительно
(#?([A-Fa-f0-9]){3}(([A-Fa-f0-9]){3})?) Шестнадцатиричный код цвета
((?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,15}) От 8 до 15 символов с минимум одной цифрой, одной заглавной и одной строчной буквой (полезно для паролей).
(\w+@[a-zA-Z_]+?\.[a-zA-Z]{2,6}) Адрес email
(\<(/?[^\>]+)\>) HTML теги

Хорошая шпаргалка по регулярным выражениям.
Часть упрощается, часть нерабочая, часть вовсе ненужная. Не устоит учить таким регуляркам неокрепшие умы. Окрепшим тоже такое не нужно
 
  • Спасибо
Реакции: ramzes8, A1ex и kagorec

kagorec

Client
Регистрация
24.08.2013
Сообщения
979
Благодарностей
523
Баллы
93
(\w+@[a-zA-Z_]+?\.[a-zA-Z]{2,6}) Адрес email
[email protected] Как эта и остальные регулярки нерабочие. Удалите этот мануал, лучше основы познавать экспериментируя в онлайн проверке.
 

Dimionix

Moderator
Регистрация
09.04.2011
Сообщения
3 068
Благодарностей
3 122
Баллы
113
Регистрация
08.07.2015
Сообщения
2 848
Благодарностей
712
Баллы
113

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)