1 / 1 / 1
Регистрация: 14.06.2011
Сообщений: 49
1

регулярные выражения - слова справа/слева

06.01.2014, 15:35. Показов 3569. Ответов 4
Метки нет (Все метки)

В общем, есть строка из слов и всякого другого. Где-то посередине находится курсор (ака каретка). и нужно определить что первое слово справа и первое слово слева от курсора записаны на одном языке.

Я что-то написал, но что именно - понимаю смутно...


То есть, когда каретка находится в центре слова, то эти регулярки
_____rxLeft = new Regex("([a-zA-Zа-яА-ЯёЁ]+)[^a-zA-Zа-яА-ЯёЁ]{0,4}$");
_____rxRight = new Regex("^[^a-zA-Zа-яА-ЯёЁ]{0,4}([a-zA-Zа-яА-ЯёЁ]+)");

правильно выделяют именно буквы:
"tes|sting" -> "tes" + "sting";

А если каретка находится между словами, то захватываются и небуквенные символы:
"при___|__мер" -> "при___" + "__мер";
Что не верно
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.01.2014, 15:35
Ответы с готовыми решениями:

Подсчитать количество пар слов, в которых последняя буква слова слева совпадает с первой буквой слова справа
Дана строка без знаков препинания. Подсчитать количество пар слов, в которых последняя буква слова...

Регулярные выражения поиск слова целиком
Всем доброго времени суток! Пытаюсь найти слово целиком (не часть) Вроде делаю как написано...

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

Регулярные выражения: поиск и выделение слова в тексте
Уважаемые программисты помогите пожалуйста с заданием. заранее спасибо!

4
foo();
886 / 587 / 222
Регистрация: 03.07.2013
Сообщений: 1,549
Записей в блоге: 2
06.01.2014, 15:45 2
можно, применить на каждую строку .Where(char.IsLetter);
0
1 / 1 / 1
Регистрация: 14.06.2011
Сообщений: 49
06.01.2014, 16:59  [ТС] 3
Цитата Сообщение от rattrapper Посмотреть сообщение
можно, применить на каждую строку .Where(char.IsLetter);
Я тоже верю, что где-то такая функция есть, тока в своем фреймворке .Нета ее под этим ником не нахожу...

А про регулярки, то должно быть так:
C++ (Qt)
1
2
3
4
5
6
 // если за последовательным набором букв [a-zA-Zа-яА-ЯёЁ] следует от 0 до четырех не-букв [^a-zA-Zа-яА-ЯёЁ], // (^) - неспроста, 
            // после которых идет конец строки ($), то регулярное выражение истинно
            rxLeft = new Regex("[a-zA-Zа-яА-ЯёЁ]+(?=[^a-zA-Zа-яА-ЯёЁ]{0,4}$)");
            // если последовательному набору букв [a-zA-Zа-яА-ЯёЁ] прдшествет от 0 до четырех не-букв [^a-zA-Zа-яА-ЯёЁ], // (^) - !
            // стоящих сразу в начале строки (:), то регулярное выражение истинно
             rxRight = new Regex("(?<=^[^a-zA-Zа-яА-ЯёЁ]{0,4})[a-zA-Zа-яА-ЯёЁ]+");
// прикольная это все таки вещь - регулярность, если разобраться))
0
foo();
886 / 587 / 222
Регистрация: 03.07.2013
Сообщений: 1,549
Записей в блоге: 2
06.01.2014, 17:14 4
Цитата Сообщение от Smogg Посмотреть сообщение
Я тоже верю, что где-то такая функция есть, тока в своем фреймворке .Нета ее под этим ником не нахожу...
подключи using System.Linq;
а потом
C#
1
string left = rxLeft.Where(char.IsLetter);
0
1 / 1 / 1
Регистрация: 14.06.2011
Сообщений: 49
08.01.2014, 00:03  [ТС] 5
спасибо)
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.01.2014, 00:03
Помогаю со студенческими работами здесь

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

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

Регулярные выражения, выведите все слова заданной длины
Дана строка, в которой содержится осмысленное текстовое сообщение. Слова сообщения разделяются...

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


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru