Регулярка на JS для поиска предложений, содержащих слово
Здравствуйте.
Подскажите регулярку для поиска предложений в русском тексте по определенному слову. Считаю что предложение это часть текста начинающееся с большой буквы и заканчивающееся точкой. Варианты сокращений типа "и т.д." или вообще сокращения пока что не учитываю. Впрочем, возможно у кого-то в копилке есть вариант и с обработкой сокращений. Прошу помочь. |
Цитата:
|
плохо это - 3 действия получается. Так-то у меня и работает (как предложил ksa). Хотелось бы регуляркой.
|
есть текст. Получаю массив предложений через текст.split('.') потом в цикле пробегаюсь по каждому из предложений
function findSentence(){
var selectedSentence;
var sentenceIndex = -1;
for(var i=0;i<sentences.length;i++){
var sentence = sentences[i];
var wordExists = sentence.indexOf(currentWord) > 0;
if(wordExists){
selectedSentence = sentence;
sentenceIndex = i;
break;
}
}
return {sentenceIndex: sentenceIndex, sentence:selectedSentence};
}
|
dev.div0, Здравствуйте,
так подойдет?
var text="Предложение номер раз. Второе предложение. Еще какой-то текст номер 3.";
var res=text.match(/[А-Я][^\.]+номер[^\.]+\./g);
alert("всего: "+res.length+"\n"+res);
|
Manyasha,
Букву Ё забыла :) |
А вообще через lodash все это решается в одну строчку, а не как у ТС в 14 :(
|
Спасибо за ответы.
([А-Я]{1}[^.]+[.]{1})
Вот эта регулярка выделяет все предложения. Ошибается при сокращениях, троеточиях, ссылках в html коде (<a href="http://mysite.com">) https://regex101.com/r/iR0qL4/2 - тестирование Цитата:
|
Цитата:
|
Цитата:
|
| Часовой пояс GMT +3, время: 00:41. |