JAVA中正则表达式的应用(一) - 编程入门网
(一)(5)
时间:2011-06-22 IBM / 陈广佳
★查找单个匹配: 首先,让我们尝试把CONTNET列中的[音标]字段的内容列示出来,由于所有单词的记录中都有这一项并且都在字串开始位置,所以这个查找工作比较简单: 确定相应的正则表达式:\[[^]]+\] 这个是很简单的正则表达式,其意思是要求相匹配的字符串必须为以一对中括号包含的所有内容,如[''kevin] 、[名词]等,但内容中不包括"]"符号,也就是要避免出现"[][]"会作为一个匹配对象的情况出现(有关正则表达式的基础知识请参照有关资料,这里不再详述)。 注意,在 Java 中,你必须对每一个向前的斜杠("\")进行转义处理。所以我们要在上面的正则表达式里每个"\"前面加上一个"\"以免出现编译错误,也就是在 JAVA 中初始化正则表达式的字符串的语句应该为: String restring=" \\[[^]]+\\]"; 并且在表达式里每个符号中间不能有空格,否则就会同样出现编译错误。 实例化PatternCompiler对象,创建Pattern对象 PatternCompiler compiler=new Perl5Compiler(); Pattern pattern=compiler.compile(restring); 创建PatternMatcher对象,调用PatternMatcher接口的contain()方法检查匹配情况:
这里matcher.contains(content,pattern)中的参数 content是从数据库里取来的字符串变量。该方法只会查到第一个匹配的对象字符串,但是由于音标项均在CONETNET内容字符串中的起始位置,所以用这个方法就已经可以保证把每条记录里的音标项找出来了,但更为直接与合理的办法是使用boolean matchesPrefix(PatternMatcherInput input, Pattern pattern)方法,该方法验证目标字符串是否以正则表达式所匹配的字串为起始。 JAVA中正则表达式的应用(一)(6)时间:2011-06-22 IBM / 陈广佳具体实现的完整的程序代码如下: package RegularExpressions; //import …… import org.apache.oro.text.regex.*; // 使用 Jakarta-ORO 正则表达式库前需要把它加到 CLASSPATH 里面,如果用 IDE 是 //JBUILDER,那么也可以在 JBUILDER 里直接自建新库。 public class yisuo{ public static void main(String[] args){ try{ // 使用 JDBC DRIVER 进行 DBMS 连接,这里我使用的是一个第三方 JDBC //DRIVER,Microsoft 本身也有一个面向 SQLSERVER7/2000 的免费 JDBC //DRIVER,但其性能真的是奇差,不用也罢。 Class.forName("com.jnetdirect.jsql.JSQLDriver"); Connection con=DriverManager.getConnection ("jdbc:JSQLConnect://kevin:1433","kevin chen","re"); Statement stmt = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE); // 为使用 Jakarta-ORO 库而创建相应的对象 String rsstring=" \\[[^]]+\\]"; PatternCompiler orocom=new Perl5Compiler(); Pattern pattern=orocom.compile(rsstring); PatternMatcher matcher=new Perl5Matcher(); ResultSet uprs = stmt.executeQuery("SELECT * FROM aesop"); while (uprs.next()) { Stirng word=uprs.getString("word"); Stirng content=uprs.getString("content"); if(matcher.contains(content,pattern)){ // 或 if(matcher.ma |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |