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

★★
Ответ на: комментарий от Rastafarra

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

DDR ★★
() автор топика
Ответ на: комментарий от DDR

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

DDR ★★
() автор топика
Ответ на: комментарий от tzukko

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

DDR ★★
() автор топика
Ответ на: комментарий от DDR

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

DDR ★★
() автор топика
Ответ на: комментарий от DDR

Во - а я уже мощный костыль изобразил =)
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
()
Ответ на: комментарий от tzukko

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

DDR ★★
() автор топика
Ответ на: комментарий от DDR

Нашел, это границы слова. Спасибо огромное!

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