我使用正则表达式在 Java 中编写程序,我有很多句子给定字符串的结构;“为医生 ahmed mohamed 写的‘学习 Java’一书”。或者“最好的标题:为ahmed mohamed学习java”,等等……,
意思是:
(书)可以是[书或文本:或(文本)]。
(对于医生)可以是[为作者或为或由医生]。
输出:
我想在(书)和(医生)之前提取任何单词并将其命名为标题。并在(对于医生)之后提取任何单词并将其命名为作者。
String inputtext = "book 'learning java' for doctor ahmed mohamed";
Pattern p = Pattern.compile("(?<=(book| the book| \\( . \\)|\\:)) .*? (?=(for doctor| for| for author))");
Matcher m = p.matcher(inputtext);
if (m.matches()) {
String author = m.group(1).trim();
String bookTitle = m.group(2).trim();
System.out.println("Title is : " + author);
System.out.println("Author is : " + bookTitle);