Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.80/41: Рейтинг темы: голосов - 41, средняя оценка - 4.80
0 / 0 / 0
Регистрация: 09.11.2013
Сообщений: 4

Подскажите регулярное выражение для поиска только вопросительных предложений в тексте

09.11.2013, 15:54. Показов 8207. Ответов 29
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. Кому не сложно подскажите регулярное выражение для поиска только вопросительных предложений в тексте. Заранее спасибо.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
09.11.2013, 15:54
Ответы с готовыми решениями:

Сколько вопросительных предложений в тексте
Есть текст (не обращайте внимание на смысл предложений). "Сегодня чудесный день.Зачем ты испортил эту рубашку?Когда-то я куплю ручку, и...

Определить количество вопросительных предложений в тексте
Дан текст сколько в нем вопросительных предложений!!!! Дан текст! Есть ли в данном тексте символ " к"!!! Дан текст , напишите...

Регулярное выражение для поиска
Помогите с регулярными выражениями при парсинге. Скачиваю страницу. <td colspan="1"><font...

29
 Аватар для lpvoid
324 / 307 / 59
Регистрация: 06.03.2013
Сообщений: 869
09.11.2013, 16:11
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

C#
1
[A--я0-9\,\s]*\?
?
2
0 / 0 / 0
Регистрация: 09.11.2013
Сообщений: 4
09.11.2013, 16:58  [ТС]
lpvoid, спасибо большое, я сначала использовал такое выражение "[!.-](.*)[?]", хотел выдернуть все предложения от знаков препинания и тире, до знака вопроса. Но к сожалению выдергивал вместе со знаками:
". – Кто на этакого мальбрука польстится?" - типа этого.
Ваш вариант лучше, еще хотелось бы услышать совет по поводу изучения регулярных выражений, что почитать либо что посмотреть. Заранее спасибо.
0
Master of Orion
Эксперт .NET
 Аватар для Psilon
6102 / 4958 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
09.11.2013, 17:29
lpvoid, а так?
C#
1
.+?\b\s*\?
Добавлено через 1 минуту
Цитата Сообщение от Revver Посмотреть сообщение
Ваш вариант лучше, еще хотелось бы услышать совет по поводу изучения регулярных выражений, что почитать либо что посмотреть. Заранее спасибо.
практика.

Добавлено через 56 секунд
Revver, если переписать пример выше только чуть понятнее, то просто
C#
1
[\w\,\s]*\?
2
0 / 0 / 0
Регистрация: 09.11.2013
Сообщений: 4
12.11.2013, 15:38  [ТС]
Спасибо, но возник вопрос. Как значение из объекта класса MatchCollection перенести в обычный string массив.

C#
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
class Program
    {
        static void Main(string[] args)
        {
            StreamReader sr = new StreamReader("D:\\text.txt", Encoding.Default);
            string text = sr.ReadToEnd();
            string[] st = new string[10] ;
            Console.WriteLine(text);
            Console.ReadLine();
            Regex reg = new Regex(@"[\w\d\,\s]*\?");
            MatchCollection matches = reg.Matches(text);
            for (int i = 0; i < matches.Count; i++)
            {
                for (int j = 0; j < st.Length; j++)
                {
                    st[j] = matches[i].Value;
                }
            }
 
            for (int i = 0; i < st.Length; i++)
                Console.WriteLine(st[i]);
            Console.ReadLine();
 
        }
    }
есть такой ответ, но проблема в том, что в стринговый массив вноситься только последнее "предложение" из matches[i].Value.
0
Master of Orion
Эксперт .NET
 Аватар для Psilon
6102 / 4958 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
12.11.2013, 15:44
Revver,
C#
1
\w\d
бесполезная конструкция, так как цирфы тоже входят в \w.
C#
1
2
var matches = Regex.Matches(text, @"[\w\,\s]*\?");
string[] mStrings = matches.Cast<Match>().Select(m => m.Value).ToArray();
1
0 / 0 / 0
Регистрация: 09.11.2013
Сообщений: 4
12.11.2013, 15:52  [ТС]
Psilon, большое спасибо, вы меня прям выручаете)
0
Вежливость-главное оружие
 Аватар для some_name
233 / 234 / 86
Регистрация: 19.02.2013
Сообщений: 1,446
12.11.2013, 16:05
Здравствуйте!

То же возник вопросик.
Мне небходимо выполнять простые мат операции(+-*/).
Пользователь вводит строку типа "25/5".
Какое регулярное выражение нужно использовать что бы вычленить операнды и оператор.

Заранее спс.
0
Master of Orion
Эксперт .NET
 Аватар для Psilon
6102 / 4958 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
12.11.2013, 16:10
some_name, в вашем случае проще привести к ОПН, а потом вычислять.

Хотя если все операции простые (типа 2+2 или 25/5) это можно, а вот если сложные (2+2*2) - то уже не получится.
Для простых регулярка такая:
C#
1
2
3
4
var regex = new Regex(@"(\d+)([\+\*-/])(\d+)");
int op1 = int.Parse(regex.Groups[1].Value);
int op2 = int.Parse(regex.Groups[3].Value);
string op = regex.Groups[2].Value;
0
 Аватар для lpvoid
324 / 307 / 59
Регистрация: 06.03.2013
Сообщений: 869
12.11.2013, 16:10
some_name,
рекурсивный спуск
C#
1
(\d+)([\+\/\-\*]{1})(\d+)
Добавлено через 27 секунд
не успел, слоупок
0
Master of Orion
Эксперт .NET
 Аватар для Psilon
6102 / 4958 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
12.11.2013, 16:12
lpvoid, не переживай, можешь еще сделать на случай дробных чисел
В таком случае, кстати, проще доставать string.Split'ом, чем регулярками
0
 Аватар для lpvoid
324 / 307 / 59
Регистрация: 06.03.2013
Сообщений: 869
12.11.2013, 16:15
Psilon, не переживаю)
а деревянный "парсинг" выражения сплитом - плохой тон).
0
Master of Orion
Эксперт .NET
 Аватар для Psilon
6102 / 4958 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
12.11.2013, 16:24
lpvoid, да ну? подумай, что там могут быть цифры. А еще кроме точки они могут разделяться запятой. Или еще чем. Или иметь пробелы по разрядам. Сплиту пофиг - он все это схавает, а вот с регуляркой ты себе мозги сделаешь конкретно
1
 Аватар для lpvoid
324 / 307 / 59
Регистрация: 06.03.2013
Сообщений: 869
12.11.2013, 16:26
Psilon,

Не по теме:

а я сказал что парсинг регулярками лучше?) только хардкор, только рекурсивный спуск.

2
Вежливость-главное оружие
 Аватар для some_name
233 / 234 / 86
Регистрация: 19.02.2013
Сообщений: 1,446
12.11.2013, 20:07
спс
0
0 / 0 / 0
Регистрация: 25.02.2011
Сообщений: 11
12.11.2013, 23:51
Тогда чтобы не создавать новую тему поинтересуюсь тут. Мне нужно при помощи регулярного выражения найти количество символов в строке. Возможно ли это? К примеру строка у меня будет такая:
Java
1
 String line = " a=aaa+aa-a+aa;   ";
. Если поставить аккуратно везде пробелы после каждых операторов, то я знаю как написать регулярку: "([^a-z0-9]a[^a-z0-9])"; Но для примера выше данное регулярное выражение не подойдет корректно. Помогите пожалуйста
0
Master of Orion
Эксперт .NET
 Аватар для Psilon
6102 / 4958 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
13.11.2013, 00:11
spindul,
C#
1
2
String line = " a=aaa+aa-a+aa;   "
int lettersCount = line.Count(char.IsLetter);
0
0 / 0 / 0
Регистрация: 25.02.2011
Сообщений: 11
13.11.2013, 00:34
Цитата Сообщение от Psilon Посмотреть сообщение
spindul,
C#
1
2
String line = " a=aaa+aa-a+aa;   "
int lettersCount = line.Count(char.IsLetter);
Врятли мне поможет шарповский код в Java. И я думаю, если я хотел бы узнать количество именно так, я бы это сделал без проблем. Мне необходимо сделать именно это через регулярные выражения. то есть, составить так паттерн регулярного выражения, чтобы потом мог его использовать при поиске нужного мне символа(универсально).

Еще скажу то, что к примеру в строке String line = " a=aaa+aa-a+aa; мне нужно найти только символ a, не символ aaa. То есть в данном выражении количество а составляет 2 символа

Добавлено через 5 минут
"Врятли мне поможет шарповский код в Java" хотел написать: врятли мне поможет данный код, тем более я бы и так его написал
0
Master of Orion
Эксперт .NET
 Аватар для Psilon
6102 / 4958 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
13.11.2013, 07:20
spindul, вряд ли стоит задавать вопросы по джаве в разделе C# и жаловаться, что дали совет на C#...
0
0 / 0 / 0
Регистрация: 25.02.2011
Сообщений: 11
13.11.2013, 11:51
Цитата Сообщение от Psilon Посмотреть сообщение
spindul, вряд ли стоит задавать вопросы по джаве в разделе C# и жаловаться, что дали совет на C#...
Мне кажется, или я потом исправился - это раз. А во-вторых, вопрос я задал про регулярные выражения, и на каком языке это будет не важно, или вы со мной поспорите? Ответ вы дали мне конечно хороший, но он никак не связан с регулярными выражениями. И если вы не заметили я не особый делал акцент на то, что он был написан на том или ином языке, я сделал акцент на то, что я бы и без вашего ответа это написал.

Повторяюсь еще раз, у меня вопрос про регулярные выражения!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
13.11.2013, 11:51
Помогаю со студенческими работами здесь

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

Регулярное выражение для поиска и замены
Привет! Прошу помощи сообщества - нужно составить регулярное выражение для поиска и замены в тексте сайта на множестве страниц при...

Регулярное выражение для поиска слова
У меня есть файл, содержащий строки с текстом: Предложение номер один Второе предложение, оно тут Предложение третье Как мне...

Составить регулярное выражение для комментариев в тексте
Необходимо регулярное выражение для комментариев в тексте вида /*asd*/ также /**/(пустые) и /* *asd */ Также чтоб не совпадало с...

Регулярное выражение для поиска email адреса
Здравствуйте дорогие форумчане!)) Составил регулярное выражение, но оно почему-то работает неправильно.... Вот оно string pattern =...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru