import
java.util.regex.Matcher;
import
java.util.regex.Pattern;
public
class
WordsBetweenBoundariesExample {
public
static
void
main(String[] args) {
String inputString =
"Welcome to GeeksForGeeks Best Online Platform for"
+
" learning Computer Science Subjects"
;
String startingBoundary =
"Best"
;
String endingBoundary =
"Subjects"
;
String wordRegex =
"\\b"
+ startingBoundary +
"\\b\\s*(.*?)\\s*\\b"
+ endingBoundary +
"\\b"
;
Pattern pattern = Pattern.compile(wordRegex, Pattern.CASE_INSENSITIVE | Pattern.DOTALL);
Matcher matcher = pattern.matcher(inputString);
if
(matcher.find()) {
String wordsBetweenBoundaries = matcher.group(
1
);
String[] wordsArray = wordsBetweenBoundaries.split(
"\\s+"
);
int
wordCount = wordsArray.length;
System.out.println(
"\n\tInput string: "
+ inputString);
System.out.println(
"\n\tStarting boundary Value: "
+ startingBoundary);
System.out.println(
"\n\tEnding boundary Value: "
+ endingBoundary);
System.out.println(
"\n\tNumber of words between boundaries: "
+ wordCount);
System.out.println(
"\n\tWords between boundaries: "
);
for
(String word : wordsArray)
System.out.print(
"\n\t"
+ word +
", "
);
}
else
{
System.out.println(
"\n\tInput string: "
+ inputString);
System.out.println(
"\n\tStarting boundary Value: "
+ startingBoundary);
System.out.println(
"\n\tEnding boundary Value: "
+ endingBoundary);
System.out.println(
"\n\tNo match found between boundaries."
);
}
}
}