在Java中使用正则表达式从字符串中提取每个单词
给定一个字符串,从中提取单词。 “单词”被定义为字母字符的连续字符串,即任何大写或小写字符az 或AZ。
例子:
Input : Funny?? are not you?
Output : Funny
are
not
you
Input : Geeks for geeks??
Output : Geeks
for
geeks
我们在这篇文章中讨论了 C++ 的解决方案:Program to extract words from a given String
我们还在这些帖子中讨论了Java的基本方法:使用Java计算文本文件中的行数、单词数、字符数和段落数以及使用正则表达式打印单词中的第一个字母。
在这篇文章中,我们将讨论做同样事情的正则表达式方法。这种方法在时间复杂度方面最好,也可用于大型输入文件。下面是任何单词的正则表达式。
[a-zA-Z]+
// Java program to demonstrate extracting words
// from string using Regex
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Test
{
public static void main(String[] args)
{
String s1 = "Geeks for Geeks";
String s2 = "A Computer Science Portal for Geeks";
Pattern p = Pattern.compile("[a-zA-Z]+");
Matcher m1 = p.matcher(s1);
Matcher m2 = p.matcher(s2);
System.out.println("Words from string \"" + s1 + "\" : ");
while (m1.find()) {
System.out.println(m1.group());
}
System.out.println("Words from string \"" + s2 + "\" : ");
while (m2.find()) {
System.out.println(m2.group());
}
}
}
输出:
Words from string "Geeks for Geeks" :
Geeks
for
Geeks
Words from string "A Computer Science Portal for Geeks" :
A
Computer
Science
Portal
for
Geeks