程序工具之正则表达式测试工具<Java实现>
2012-11-26 11:39
483 查看
/** * 在编译器控制台中使用的正则表达式测试器 * @author Sking */ package regex; import java.io.BufferedInputStream; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.regex.Matcher; import java.util.regex.Pattern; import java.util.regex.PatternSyntaxException; public class CompilerRegexTest { public static void main(String[] args) throws IOException { Pattern pattern = null; Matcher matcher = null; BufferedReader br = new BufferedReader(new InputStreamReader( new BufferedInputStream(System.in))); while (true) { try { System.out.print("Enter your regex: "); pattern = Pattern.compile(br.readLine()); System.out.print("Enter input string to search: "); matcher = pattern.matcher(br.readLine()); } catch (PatternSyntaxException pse) { System.out .println("There is a problem with the regular expression!"); System.out.println("The pattern in question is: " + pse.getPattern()); System.out.println("The description is: " + pse.getDescription()); System.out.println("The message is: " + pse.getMessage()); System.out.println("The index is: " + pse.getIndex()); System.exit(0); } boolean found = false; while (matcher.find()) { System.out.println("I found the text \"" + matcher.group() + "\" starting at index " + matcher.start() + " and ending at index " + matcher.end() + "."); found = true; } if (!found) { System.out.println("No match found."); } } } }
/** * 使用终端进行正则表达式测试的工具类,不能在编译器的控制台使用,可以 * 在DOS命令行下编译,运行使用 * @author Sking */ package regex; import java.io.Console; import java.util.regex.Matcher; import java.util.regex.Pattern; public class ConsoleRegexTest { public static void main(String[] args) { Console console = System.console(); if (console == null) { System.err.println("No console."); System.exit(1); } while (true) { Pattern pattern = Pattern.compile(console.readLine("%nEnter your regex: ")); Matcher matcher = pattern.matcher(console.readLine("Enter input string to search: ")); boolean found = false; while (matcher.find()) { console.format("I found the text \"%s\" starting at index %d " + "and ending at index %d.%n", matcher.group(), matcher.start(), matcher.end()); found = true; } if (!found) { console.format("No match found.%n"); } } } }
相关文章推荐
- 各种排序算法及其java程序实现 &lt;转&gt;
- 八皇后问题之回溯算法实现<java实现>
- [原]java专业程序代写(qq:928900200),学习笔记之基础入门<jsp>(二十六)
- 交换函数的3种实现<Java实现>
- 项目day02--<客户上下线时间程序实现>(中)
- <转>学习java反编译工具的使用
- 第九周实验任务二--定义Complex类中的<<和>>运算符的重载,实现输入和输出,使程序读起来更自然
- 字符串问题之串移包含问题<Java实现>
- java实现万年历<51cto学院学习笔记>
- 逻辑回归(LR)算法java实现<转>
- java移位运算符实验程序:<<(左移)、>>(带符 号右移)和>>>(无符号右移)
- 学习java笔记 --- 一个实现Iterable<E>接口的小范例
- 数字问题之阶乘零数问题<Java实现>
- 文件操作大全<Java实现>
- HD巴什博奕<java实现>
- java 基于List<MultipartFile>实现多文件上传
- 用人类的思维方式去写更容易维护的代码——用<抽象-基础-逻辑>模式开发Java(Android)程序
- java二维码生成与解析代码实现 <转载自http://blog.csdn.net/about58238/article/details/7494704>
- [原]java专业程序代写(qq:928900200),学习笔记之基础入门<Struts2_实战演练(中)>(三十九)
- <转>VC++实现Vista和Win7系统低权限程序向高权限程序发消息