oup 。 您可以使用两种方法:
具体库
RegexpPlugin API
因为您的 regexp 是 .*\s*(.*?)\s+.* ,所以您只有一个组: (.*?)
MatchResult 对象包含已排序列表中的所有组。您只需要知道要获取的组的 位置。因为该示例只有一个组,所以毫无疑问:
String name = matchResult.group(1);
[..]
}
变量 name 现在包含文本 John,那正是您需要的。
第 7 步:如果需要,则重复该过程。 如果您需要的信息可多次出现,而您 想分析所有出现的信息而不只是第一个,那么您只需循环执行第 5步到第 7步, 直到不满足 第 4 步中描述的条件为止:
while (matcher.contains("John A. Smith", pattern))
{
构建用于正则表达式的抽象Java API(5)
时间:2010-12-24 Jose San Leandro Arm
映射
除了编写公共抽象 API,主要的工作实际上是实现 Java 环境中某些已存在 的 regexp 引擎的适配器。
以下各表提供了对如何从一个库迁移至另一个库的详细描述。有些情况中, 概念明显不同。也有些情况中,却不是那么明显。
Regexp 概念 |
GNU Regexp 1.2 |
编译器 |
gnu.regexp.RE |
模式 |
gnu.regexp.RE |
匹配程序 |
gnu.regexp.REMatchEnumeration
gnu.regexp.RE
|
匹配结果 |
gnu.regexp.REMatch |
畸形模式异常 |
gnu.regexp.REException |
Regexp 概念 |
Jakarta Oro 2.0.6 |
编译器 |
org.apache.oro.text.regex.Perl5Compiler |
模式 |
org.apache.oro.text.regex.Pattern |
匹配程序 |
org.apache.oro.text.regex.Perl5Matcher |
匹配结果 |
org.apache.oro.text.regex.MatchResult |
畸形模式异常 |
org.[..].regex.MalformedPatternException |
Regexp 概念 |
Jakarta Regexp 1.3 |
编译器 |
org.apache.regexp.RE
org.apache.regexp.RECompiler
org.apache.regexp.REProgram |
模式 |
org.apache.regexp.REProgram
org.apache.regexp.RE |
匹配程序 |
org.apache.regexp.RE
org.apache.regexp.REProgram |
匹配结果 |
org.apache.regexp.RE |
畸形模式异常 |
org.apache.regexp.RESyntaxException |
Regexp 概念 |
JDK 1.4 regex 包 |
编译器 |
java.util.regex.Pattern |
模式 |
java.util.regex.Pattern |
匹配程序 |
java.util.regex.Matcher |
匹配结果 |
java.util.regex.Matcher |
畸形模式异常 |
java.util.regex.PatternSyntaxException |
|