Регулярные выражения на все случаи жизни

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 039
Баллы
113
Извините, я наверное не полностью обрисовал всю картину. В тексте конечно же могу встречаться и запятые, и двоеточия и все остальные знаки препинания, а так же цифры, возможны даже рабочие символы. Поэтому данное регулярное выражение не подходит, нужно именно что бы искало все пробелы кроме тех, перед которыми стоят ! ? .
C#
C#:
var str = "Текст, текст текст. Текст текст. Текст! текст текст.";
var regex = new Regex(@"(?<![\?\.!])\s+");
var outlist = new List <string>();
regex.Matches(str).Cast<Match>().ToList().ForEach(m=>outlist.Add(m.Value));
return outlist.Count;
 
  • Спасибо
Реакции: revan

revan

Client
Регистрация
29.03.2012
Сообщения
23
Благодарностей
8
Баллы
3
C#:
var str = "Текст, текст текст. Текст текст. Текст! текст текст.";
var regex = new Regex(@"(?<![\?\.!])\s+");
var outlist = new List <string>();
regex.Matches(str).Cast<Match>().ToList().ForEach(m=>outlist.Add(m.Value));
return outlist.Count;
А в чем отличае от предыдущего регулярного выражения? Мне просто надо будет сделать замену рандомного пробела на ключевое слово, со сниппетом не уверен, что получиться реализовать.
 

levival

Client
Регистрация
04.04.2015
Сообщения
15
Благодарностей
3
Баллы
3
Привет всем. Подскажите регулярное выражение, для текста в в формате txt, разбитый по строкам. Нужно проставить точки, в конце предложений, там где их нет. И там где предложение начинается с маленькой буквы, сделать начальную букву заглавной.
 

Dimionix

Moderator
Регистрация
09.04.2011
Сообщения
3 068
Благодарностей
3 101
Баллы
113
Привет всем. Подскажите регулярное выражение, для текста в в формате txt, разбитый по строкам. Нужно проставить точки, в конце предложений, там где их нет. И там где предложение начинается с маленькой буквы, сделать начальную букву заглавной.
C#:
string text = project.Variables["text"].Value; // переменная с текстом
Regex reg = new Regex(@"\.?\r\n");
text = reg.Replace(text, ".\r\n");

string[] s = Regex.Split(text, @"(?<=([\u2026\.\!\?]+\ )|\n)");
for (int i = 0; i < s.Length; i++)
{
    if (s[i].Length > 1)
        s[i] = s[i].Substring(0, 1).ToUpper() + s[i].Substring(1, s[i].Length - 1);
    else s[i] = s[i].ToUpper();
}
return string.Join("", s);
 
  • Спасибо
Реакции: udder, romanss и CSS

AHiTO

Client
Регистрация
17.04.2016
Сообщения
15
Благодарностей
0
Баллы
1
Как сделать: если на странице есnm текст в скобках формата (почта@домен.ру) то чтобы его записывало в переменную.


Там где парсить результат записано \([\.\-_A-Za-z0-9]+?@[\.\-A-Za-z0-9]+?[\.A-Za-z0-9]{2,})

В чем ошибка?
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 039
Баллы
113
2016-04-18_221618.png

в конце регулярки перед скобкой слэш поставь
 
  • Спасибо
Реакции: AHiTO

sergant

Новичок
Регистрация
23.01.2016
Сообщения
21
Благодарностей
0
Баллы
1
Здравствуйте. Подскажите кто может, нужно сделать регулярку по следующим условиям. Нужно постить текст, он из переменной выходит сплошным массивом (т.е. точки есть, но не разбит на абзацы), нужно разбить текст на абзацы, желательно не одинаковые, по 2-3-4 предложения, рандомно. И после второго абзаца нужно вставить в текст дополнительный абзац из другого файла (или переменной).
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 039
Баллы
113
на форуме есть такое, воспользуйся поиском
 

sergant

Новичок
Регистрация
23.01.2016
Сообщения
21
Благодарностей
0
Баллы
1
да я уже искал. Есть ответ, как разбить текст по предложениям, но мне нужно сделать абзацы по 2-3-4 предложения.
 

ZennoScript

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

sergant

Новичок
Регистрация
23.01.2016
Сообщения
21
Благодарностей
0
Баллы
1
А можно с помощью регулярных выражений найти в тексте нужный символ? Например третью по счету точку, иными словами концовку 3-его предложения?
 

ZennoScript

Moderator
Регистрация
04.03.2011
Сообщения
4 450
Благодарностей
1 880
Баллы
113
А можно с помощью регулярных выражений найти в тексте нужный символ? Например третью по счету точку, иными словами концовку 3-его предложения?
Можно.
(.*?\.){3}
 
  • Спасибо
Реакции: CSS

sergant

Новичок
Регистрация
23.01.2016
Сообщения
21
Благодарностей
0
Баллы
1
спасибо.
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 039
Баллы
113

sergant

Новичок
Регистрация
23.01.2016
Сообщения
21
Благодарностей
0
Баллы
1
а как можно было бы дополнить эту формулу, чтобы этих первых 3 предложения выделились в абзац? Видимо надо добавить <p> в начало и </p> в конец, но как это в формулу оформить?
 

ZennoScript

Moderator
Регистрация
04.03.2011
Сообщения
4 450
Благодарностей
1 880
Баллы
113
а как можно было бы дополнить эту формулу, чтобы этих первых 3 предложения выделились в абзац? Видимо надо добавить <p> в начало и </p> в конец, но как это в формулу оформить?
Регулряка просто получает данные в переменную. А дальше уже оперируйте этой переменной как хотите, добавляйте перед и после неё всё, что нужно.
 

sergant

Новичок
Регистрация
23.01.2016
Сообщения
21
Благодарностей
0
Баллы
1
Эта формула делит текст на абзацы по 3 предложения. А как мне найти концовку именно 3 предложения? Мнет нужно в это место делать вставку из другого файла (тоже текст).
 

ZennoScript

Moderator
Регистрация
04.03.2011
Сообщения
4 450
Благодарностей
1 880
Баллы
113
Эта формула делит текст на абзацы по 3 предложения. А как мне найти концовку именно 3 предложения? Мнет нужно в это место делать вставку из другого файла (тоже текст).
Так Вы правильно формулируйте задачи. Поменяйте, чтобы это шло перед искомым текстом, т.е. будет так (?<=(.*?\.){3}) и делайте замену этого на свои данные.
 

maxtor1986

Client
Регистрация
25.12.2015
Сообщения
14
Благодарностей
0
Баллы
1
может кто вкурсе, как со строки(переменной) удалить все символы более 11(удалять вконце!). Символы различные

А то на 3 странице нашел, там тока строчные, а все символы - хз.

"подскажите регулярку.
Нужно с строки удалить первые 6 символов.
Символы маленькие английские буквы
Code (text):
  1. ^[a-z]{6}"
С уважением, Сергей
 

ZennoScript

Moderator
Регистрация
04.03.2011
Сообщения
4 450
Благодарностей
1 880
Баллы
113
может кто вкурсе, как со строки(переменной) удалить все символы более 11(удалять вконце!). Символы различные

А то на 3 странице нашел, там тока строчные, а все символы - хз.

"подскажите регулярку.
Нужно с строки удалить первые 6 символов.
Символы маленькие английские буквы
Code (text):
  1. ^[a-z]{6}"
С уважением, Сергей
\.{6}
 
  • Спасибо
Реакции: maxtor1986

maxtor1986

Client
Регистрация
25.12.2015
Сообщения
14
Благодарностей
0
Баллы
1

maxtor1986

Client
Регистрация
25.12.2015
Сообщения
14
Благодарностей
0
Баллы
1
сделал, спс, помогли))
 

dimanis

Client
Регистрация
16.04.2016
Сообщения
195
Благодарностей
110
Баллы
43
Добрый день! Подскажите регулярку для клика по любой внутренней ссылке сайта с исключениями.
т.е. содержит {-Variable.domen-} и не содержит (jpg)|(gif)|(\.js)|(\.css)|(png)
брал за основу эту:
Поиск строк НЕ содержащих указанную (под)строку:
(?<=(^|\r\n))((?!(test)).)*(?=($|\r\n))
Тэг: а
Атрибут: href

но куда тут воткнуть домен не соображу никак.
(?<=({-Variable.domen-}))((?!(jpg)|(gif)|(\.js)|(\.css)|(png)).)*(?=($|\r\n)) - кликает по внешним.
спасибо
 
  • Спасибо
Реакции: rostonix

dimanis

Client
Регистрация
16.04.2016
Сообщения
195
Благодарностей
110
Баллы
43
Вот doc помог: {-Variable.domen-}((?!\.png|\.jpg|\.js|\.css).)+$ почти работает))
Иногда выскакивает за пределы домена если попадается ссылка вида:

http://polnajopa.net/submit?phase=2&url={-Variable.domen-}?p=88&title=mnogabukaf
или http://twitter.com/home?status={-Variable.domen-}?p=86

Подскажите как решить. Нужно в начало этой регулярки добавить выражение чтоб брались только строки у которых {-Variable.domen-} стоит только в начале строки, а не в ее теле.
 

dimanis

Client
Регистрация
16.04.2016
Сообщения
195
Благодарностей
110
Баллы
43
Всем спасибо. Разобрался. ^({-Variable.domen-})((?!\.png|\.jpg|\.js|\.css).)+$
 
  • Спасибо
Реакции: rostonix

VladG

Client
Регистрация
30.07.2014
Сообщения
3
Благодарностей
1
Баллы
3
Приветствую! Нужно удалять строки, которые содержат любое 5тизначное число, заранее спасибо!
 

dimanis

Client
Регистрация
16.04.2016
Сообщения
195
Благодарностей
110
Баллы
43

ivanwork1

Новичок
Регистрация
24.05.2016
Сообщения
9
Благодарностей
0
Баллы
1
Доброе утро всем! Кто может помочь составить регулярку, всю ночь пытался...
Ничего не вышло.

Есть к примеру такой код:
<div class="vid_title" id=""><span><a href="/news/pogonja_za_proshlym_1_2_3_serija_2015_smotret_onlajn/2016-05-24-14345">Погоня за прошлым 9, 10 серия (2016) - смотреть онлайн</a></span> </div>
<div class="vid_title" id="vid_title2"><span><a href="/news/dorogaja_my_ubivaem_detej_kokhana_mi_vbivaemo_ditej_5_sezon_08_04_2015_smotret_onlajn/2016-05-24-10984">Дорогая мы убиваем детей 7 сезон 12 выпуск (24.05.2016) - смотреть онлайн</a></span> </div>
Нужно достать оттуда:

Дорогая мы убиваем детей 7 сезон 12 выпуск (24.05.2016) - смотреть онлайн
Погоня за прошлым 9, 10 серия (2016) - смотреть онлайн
Как это сделать? Буду очень благодарен, кто поможет.
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 039
Баллы
113
Доброе утро всем! Кто может помочь составить регулярку, всю ночь пытался...
Ничего не вышло.

Есть к примеру такой код:




Нужно достать оттуда:



Как это сделать? Буду очень благодарен, кто поможет.
(?<=<a\ href[^>]+>).*?(?=</a>)
 
  • Спасибо
Реакции: ivanwork1

ivanwork1

Новичок
Регистрация
24.05.2016
Сообщения
9
Благодарностей
0
Баллы
1
Спасибо большое!
 

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