当前位置:  技术问答>java相关

在JAVA中如何用正侧表达式

    来源: 互联网  发布时间:2015-11-02

    本文导语:  比如我要把字符中的数字替换成*号,把一串字符中的空格删了,请问如何做呢 | http://www-106.ibm.com/developerworks/java/library/j-mer0827/ Magic with Merlin: Parse sequences of characters with the new regex libra...

比如我要把字符中的数字替换成*号,把一串字符中的空格删了,请问如何做呢

|
http://www-106.ibm.com/developerworks/java/library/j-mer0827/
Magic with Merlin: Parse sequences of characters with the new regex library 
Complete example
These two classes -- Pattern and Matcher -- are the whole pattern-matching library. Coming up with the right regular expression and then working with the results of the Matcher class is really all there is to the library. Until a dedicated book on regular expressions comes out for the Java language, find a good book on Perl to learn more about the specific patterns. Listing 1 provides a complete example by looking for the longest word in a particular file passed in from the command line as input.

Listing 1. Longest word example
import java.io.*;
import java.nio.*;
import java.nio.channels.*;
import java.nio.charset.*;
import java.util.*;
import java.util.regex.*;

public class Longest {
  public static void main(String args[]) {
    if (args.length != 1) {
      System.err.println("Provide a filename");
      return;
    }

    try {
      // Map File from filename to byte buffer
      FileInputStream input = 
        new FileInputStream(args[0]);
      FileChannel channel = input.getChannel();
      int fileLength = (int)channel.size();
      MappedByteBuffer buffer = channel.map(
        FileChannel.MapMode.READ_ONLY, 0, fileLength); 

      // Convert to character buffer
      Charset charset = Charset.forName("ISO-8859-1");
      CharsetDecoder decoder = charset.newDecoder();
      CharBuffer charBuffer = decoder.decode(buffer);

      // Create line pattern
      Pattern linePattern = 
        Pattern.compile(".*$", Pattern.MULTILINE);

      // Create word pattern
      Pattern wordBreakPattern = 
        Pattern.compile("[\p{Punct}\s}]");

      // Match line pattern to buffer
      Matcher lineMatcher = 
        linePattern.matcher(charBuffer);

      // Holder for longest word
      String longest = "";

      // For each line
      while (lineMatcher.find()) {

        // Get line
        String line = lineMatcher.group();

        // Get array of words on line
        String words[] = wordBreakPattern.split(line);

        // Look for longest word
        for (int i=0, n=words.length; i longest.length()) {
            longest = words[i];
          }
        }
      }
      // Report
      System.out.println("Longest word: " + longest);
 
      // Close
      input.close();
    } catch (IOException e) {
      System.err.println("Error processing");
    }
  }
}
 

    
 
 

您可能感兴趣的文章:

  • Java表达式引擎 Aviator
  • Java正则表达式 reb4j
  • Java表达式语言 JUEL
  • JAVA的类库中是否有正则表达式这样的东东?
  • Java表达式语法解析库 parboiled
  • Java表达式解析器 JExel
  • java 正则表达式基础,实例学习资料收集大全 原创
  • Java算术表达式计算类库 ExpressionJ
  • java正则表达式验证函数
  • java正则表达式获取url的host示例
  • java 公式解析 表达式解析 expression-analyzer
  • java正则表达式提取数字的方法实例
  • java正则表达式使用示例
  • java正则表达式验证邮箱、电话号码示例
  • java正则表达式应用的实例代码
  • Java的表达式计算引擎 Expr4J
  • java中 利用正则表达式提取( )内内容
  • 利用Java正则表达式校验邮箱与手机号
  • java正则表达式表单验证类工具类(验证邮箱、手机号码、qq号码等)
  • java正则表达式解析html示例分享
  • java使用正则表达为数字添加千位符的简单方法
  • 在java中,如何表达界于20和40之间?
  • 请问 java.lang.Float x= new java.lang.Float(request.getParameter("x"))的表达正确吗
  • java使用正则表达校验手机号码示例(手机号码正则)
  • JAVA有没有这样的类,或怎么表达这样的数据?
  • Java8新特性之Lambda表达式浅析
  • java正则表达式匹配网页所有网址和链接文字的示例
  • 通过Java正则表达式去掉SQL代码中回车换行和多余空格
  • java表达式计算 QLExpress
  • Java 正则表达式功能及应用
  • Java/Js下使用正则表达式匹配嵌套Html标签
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • java命名空间java.sql类types的类成员方法: java_object定义及介绍
  • java正则表达式提取数字的方法实例 iis7站长之家
  • java命名空间java.awt.datatransfer类dataflavor的类成员方法: imageflavor定义及介绍
  • 请问Java高手,Java的优势在那里??,Java主要适合于开发哪类应用程序
  • java命名空间java.lang.management类managementfactory的类成员方法: getcompilationmxbean定义及介绍
  • 如何将java.util.Date转化为java.sql.Date?数据库中Date类型对应于java的哪个Date呢
  • java命名空间java.lang.management接口runtimemxbean的类成员方法: getlibrarypath定义及介绍
  • 谁有电子版的《Java编程思想第二版(Thinking in java second)》和《Java2编程详解(special edition java2)》?得到给分
  • java命名空间java.lang.management接口runtimemxbean的类成员方法: getstarttime定义及介绍
  • 本人想学java,请问java程序员的待遇如何,和java主要有几个比较强的方向
  • java命名空间java.awt.datatransfer类dataflavor的类成员方法: stringflavor定义及介绍
  • 我对JAVA一窍不通,可惜别人却给我一个Java的project,要我做一个安装程序,请问哪里有JAVA INSTALLER下载,而且我要不要安装java的sdk才能完成此项任务?
  • java命名空间java.security类keystore的类成员方法: getdefaulttype定义及介绍
  • 新年第一天,让我们讨论一下未来一年JAVA的发展趋势! 个人认为,JAVA将主要朝ERP和JAVA手机方面发展!
  • java命名空间java.lang.management接口runtimemxbean的类成员方法: getclasspath定义及介绍
  • 我想学Java,但不知道Java的实用的开发工具有那些,Java主要用在哪些方面,EJB到底是什么东西??
  • java命名空间java.awt.datatransfer类dataflavor的类成员方法: javaserializedobjectmimetype定义及介绍
  • redhat7.3下,java程序打印中文直接用java命令执行正常,用crontab执行java命令为乱码
  • java命名空间java.awt.datatransfer类dataflavor的类成员方法: javafilelistflavor定义及介绍
  • 各位学java的朋友,学java的未来是什么,你们学java都用来开发什么项目啊!来者给分!!
  • java命名空间java.lang.management接口runtimemxbean的类成员方法: getvmname定义及介绍
  • 请问java程序中的import为什么有的用java.….*,而有的又用java.….…,有什么区别吗?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3