A block of text to use as input to the regular expression matcher : 模式 « 常规表达式 « Java

En
Java
1. 图形用户界面
2. 三维图形动画
3. 高级图形
4. 蚂蚁编译
5. Apache类库
6. 统计图
7. 
8. 集合数据结构
9. 数据类型
10. 数据库JDBC
11. 设计模式
12. 开发相关类
13. EJB3
14. 电子邮件
15. 事件
16. 文件输入输出
17. 游戏
18. 泛型
19. GWT
20. Hibernate
21. 本地化
22. J2EE平台
23. 基于J2ME
24. JDK-6
25. JNDI的LDAP
26. JPA
27. JSP技术
28. JSTL
29. 语言基础知识
30. 网络协议
31. PDF格式RTF格式
32. 映射
33. 常规表达式
34. 脚本
35. 安全
36. Servlets
37. Spring
38. Swing组件
39. 图形用户界面
40. SWT-JFace-Eclipse
41. 线程
42. 应用程序
43. Velocity
44. Web服务SOA
45. 可扩展标记语言
Java 教程
Java » 常规表达式 » 模式屏幕截图 
A block of text to use as input to the regular expression matcher


// : c12:TheReplacements.java
// From 'Thinking in Java, 3rd ed.' (c) Bruce Eckel 2002
// www.BruceEckel.com. See copyright notice in CopyRight.txt.

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

/*
 * ! Here's a block of text to use as input to the regular expression matcher.
 * Note that we'll first extract the block of text by looking for the special
 * delimiters, then process the extracted block. !
 */

public class TheReplacements {
  public static void main(String[] argsthrows Exception {
    String s = TextFile.read("TheReplacements.java");
    // Match the specially-commented block of text above:
    Matcher mInput = Pattern.compile("/\\*!(.*)!\\*/", Pattern.DOTALL)
        .matcher(s);
    if (mInput.find())
      s = mInput.group(1)// Captured by parentheses
    // Replace two or more spaces with a single space:
    s = s.replaceAll(" {2,}"" ");
    // Replace one or more spaces at the beginning of each
    // line with no spaces. Must enable MULTILINE mode:
    s = s.replaceAll("(?m)^ +""");
    System.out.println(s);
    s = s.replaceFirst("[aeiou]""(VOWEL1)");
    StringBuffer sbuf = new StringBuffer();
    Pattern p = Pattern.compile("[aeiou]");
    Matcher m = p.matcher(s);
    // Process the find information as you
    // perform the replacements:
    while (m.find())
      m.appendReplacement(sbuf, m.group().toUpperCase());
    // Put in the remainder of the text:
    m.appendTail(sbuf);
    System.out.println(sbuf);

  }
///:~

class TextFile extends ArrayList {
  // Tools to read and write files as single strings:
  public static String read(String fileNamethrows IOException {
    StringBuffer sb = new StringBuffer();
    BufferedReader in = new BufferedReader(new FileReader(fileName));
    String s;
    while ((s = in.readLine()) != null) {
      sb.append(s);
      sb.append("\n");
    }
    in.close();
    return sb.toString();
  }

  public static void write(String fileName, String textthrows IOException {
    PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter(
        fileName)));
    out.print(text);
    out.close();
  }

  public TextFile(String fileNamethrows IOException {
    super(Arrays.asList(read(fileName).split("\n")));
  }

  public void write(String fileNamethrows IOException {
    PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter(
        fileName)));
    for (int i = 0; i < size(); i++)
      out.println(get(i));
    out.close();
  }

  // Simple test:
  public static void main(String[] argsthrows Exception {
    String file = read("TextFile.java");
    write("test.txt", file);
    TextFile text = new TextFile("test.txt");
    text.write("test2.txt");
  }
///:~


           
       
Related examples in the same category
1. 简单模式简单模式
2. 模式匹配模式匹配
3. 模式分裂模式分裂
4. 另一种模式分裂另一种模式分裂
5. Reg Exp Example
6. PatternConvenience -- demonstrate java.util.regex.Pattern convenience routinePatternConvenience -- demonstrate java.util.regex.Pattern convenience routine
7. Simple example of using Regular Expressions functionality in String classSimple example of using Regular Expressions functionality in String class
8. 查看使用Pattern.CANON_EQ查看使用Pattern.CANON_EQ
9. 可让您轻松地尝试正则表达式
10. 正则表达式:开始结束正则表达式:开始结束
11. 模式:重置模式:重置
12. Pattern: flags Pattern: flags
13. 设置中的大小写敏感性正则表达式
14. 使用内附的形式
15. 使用字符集
16. 添加评论,以正则表达式
17. The inline modifier can also contain pattern characters using the form (?x:abc)
18. 使用内置修饰语 1
19. 使用内置修饰符 2
20. 使用内置修饰符 3
21. 制表符和换行符的格局将被忽略,以及
22. 编译模式多标记
23. 匹配跨边界线在正则表达式
24. 匹配重复词
25. 验证测试模式和匹配
26. 匹配一个或更多
27. Matcher.reset :重新启动
28. Matcher.reset ( CharSequence )
29. Matcher.start ( ) :寻找起点
30. Matcher.start ()为例
31. Matcher.end ( ) :找到结束点
32. 找到终点第二'测试'
33. 使用查找方法从匹配
34. 使用查找(int)法
35. 使用lookingAt方法
36. 所有格预选
37. 简单积极前瞻
38. 找到每次发生的字母
39. 简单否定先行
40. 简单的实证Lookbehind
41. 正则表达式搜索计划
42. 找到所有匹配
43. 执行模式匹配的正则表达式
44. 正则表达式和CharSequence
45. 正则表达式搜索和替换计划
www.java2java.com | Contact Us
Copyright 2010 - 2030 Java Source and Support. All rights reserved.
All other trademarks are property of their respective owners.