LINUX.ORG.RU

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


0

0

Здравствуйте, помогите пожалуйста составить шаблон регулярного выражения. У меня есть вот такое текст(маска):
Текст1. Текст2 "keywords" Текст3. Текст4.
Рельный пример:
We used the keywords placebo and depression and escitalopram for pharmacological studies; and transcranial magnetic stimulation and depression and sham for non-pharmacological studies. All randomized, double-blinded, placebo-controlled, parallel articles on major depressive disorder were included.
Мне нужен текст3. Т.е. текст между "keywords" и "." и если слова "keywords" нету, то тогда вернуть пустую строчку.

Заранее благодарю.

П.С. пишу на java

★★

Re: Регулярные выражения

^.*keywords\ \(.*\).*$/

?

Rastafarra ★★★ ()
Ответ на: Re: Регулярные выражения от Rastafarra

Re: Регулярные выражения

^.*keywords\ \(.*\).*$/
что-то я в нем не разобрался (да и со строкой оно ничо не сделало), что делает "\ ".

DDR ★★ ()
Ответ на: Re: Регулярные выражения от DDR

Re: Регулярные выражения

Этот шаблон для сравнения(matcher), а мне надо для split, чтобы вырезать, я вот не знаю как оставить середину, а то он все отрезает.

DDR ★★ ()
Ответ на: Re: Регулярные выражения от DDR

Re: Регулярные выражения

Я бы сделал, например, так, в 2 действия:
Делил сначала по "keyword".
Потом из результата доставал то, что до ".".

tzukko ()
Ответ на: Re: Регулярные выражения от tzukko

Re: Регулярные выражения

Тогда если у нас в предложение вообще нету keywords, то он отрежет все кроме первого предложения (первый резак до кейворда ничего не отрежет, а второй отрежет все что идет после первой точки).

DDR ★★ ()
Ответ на: Re: Регулярные выражения от DDR

Re: Регулярные выражения

У меня текст может быть текст как с кейвордом, так и без него и заранее мы не знаем какой он.

DDR ★★ ()
Ответ на: Re: Регулярные выражения от DDR

Re: Регулярные выражения

Во - а я уже мощный костыль изобразил =)
String str = "We used the keywords placebo and depression and escitalopram for pharmacological studies; and transcranial magnetic stimulation and depression and sham for non-pharmacological studies. All randomized, double-blinded, placebo-controlled, parallel articles on major depressive disorder were included.";
String[] split = str.split("\\bkeywords\\b");
String[] results;
if (split.length > 1) {
results = new String[split.length - 1];
for (int i = 1; i < split.length; ++i) {
results[i - 1] = split[i].substring(0, split[i].indexOf('.'));
}
}

tzukko ()
Ответ на: Re: Регулярные выражения от tzukko

Re: Регулярные выражения

Круто!:) Спасибо) А не подскажешь чо \\bkeywords\\b , а то вики изучил и понял что это только символ b перед кейвордом и после?:)

DDR ★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.