Java正则表达式——测试正则表达式的一个小工具

  正则表达式是一种强大而灵活的文本处理工具。使用它我们能以编程的方式,构造复杂的文本模式,并对输入的字符串进行搜索。一旦找到了匹配这些模式的部分,你就能够随心所欲地对它们进行处理。

  关于正则表达式的语法,网上对此有介绍的文章实在是多不胜数,实在找不到,还可以查看Java的API文档,就不多介绍了。这里主要介绍一个可以测试正则表达式的小工具。直接上代码:

 1 package com.test.stringregex;
 2 //{Args: abcabcabcdefabc "abc+" "(abc)+" "(abc){2,}"}
 3 import java.util.regex.Matcher;
 4 import java.util.regex.Pattern;
 5
 6 public class TestRegularExpression {
 7     public static void main(String[] args) {
 8         if(args.length < 2) {
 9             System.out.println("Usage:\njava TestRegularExpression " +
10         "characterSequence regularExpression+");
11             System.exit(0);
12         }
13         System.out.println("Input: \"" + args[0] + "\"");
14         for(String arg : args) {
15             System.out.println("Regular expression: \"" + arg + "\"");
16             Pattern p = Pattern.compile(arg);
17             Matcher m = p.matcher(args[0]);
18             while(m.find()) {
19                 System.out.println("Match \"" + m.group() + "\" at positions " +
20                     m.start() + "-" + (m.end() - 1));
21             }
22         }
23     }
24 }

输入测试的参数为注释中的{Args: abcabcabcdefabc "abc+" "(abc)+" "(abc){2,}"},结果如下

  第一个控制台参数是将要用来搜索匹配的输入字符串,后面的一个或多个参数都是正则表达式,用""括起来,这里我分别测试了3个正则表达式"abc+" "(abc)+" "(abc){2,}",在实际使用的过程中可以替换成你想要测试的表达式,以验证它们是不是具备你所需要的匹配功能。

  Pattern对象表示编译后的正则表达式,已编译的Pattern对象上的matcher()方法,加上一个输入字符串,共同构造了一个Matcher()对象。通过调用Matcher()对象的find(),group(),start(),end()方法构成了这个工具类直观的输出,正则表达式是否匹配,如何匹配目标字符串(即参数args(0))一目了然。

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Helvetica; color: #000000 }
span.s1 { }
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Monaco; color: #4e9072 }

时间: 2024-10-10 21:47:47

Java正则表达式——测试正则表达式的一个小工具的相关文章

【开源一个小工具】一键将网页内容推送到Kindle

最近工作上稍微闲点,这一周利用下班时间写了一个小工具,其实功能挺简单但也小折腾了会. 工具名称:Simple Send to Kindle Github地址:https://github.com/zhanjindong/SimpleSendToKindle 功能:Windows下一个简单的将网页内容推送到Kindle的工具. 写这个工具的是满足自己的需求.自从买了Kindle paperwhite 2,它就成了我使用率最高的一个电子设备.相信很多Kindle拥有者和我一样都有这样一个需求:就是白

介绍一个小工具 Linqer

原文:介绍一个小工具 Linqer 这些天写Linq挺烦人的,就上网搜搜可有什么好的sql转Linq的工具,咦,马上就看上了Linqer. 哈哈,介绍一下使用方法吧: 官方下载网站:http://sqltolinq.com/download. 第一步:运行这个神马文件. 第二步:指定一个路径给它.他会生成一个Linqer.exe可运行的文件. 第三步:运行这个exe文件,点击Add按钮, 第四步:在弹出的Add界面中,给串串取个名字(如这里面的Demo),点右边的“省略号”按钮,会弹出你做梦都会

分享一个小工具:UnityRemoteLog

最近经常需要调试Unity客户端的Android版,看LOG是一个最基本的调试方法了.为了看LOG,总要看Eclipse这么重量级的工具,觉得还是有点麻烦,于是抽了点业余时间写了一个小工具:把Unity的LOG使用网络连接转发到一个PC端的窗口程序中. 使用方法 将RemoteLog.cs拷贝到你的Unity Project里面: 在任意一个MonoBehavior脚本的Start()函数中,调用RemoteLog.Instance.Start(主机IP,端口):目前默认端口是2010: 运行U

基于Java 的增量与完全备份小工具

前段时间,因为各种原因,自己动手写了一个小的备份工具,用了一个星期,想想把它的设计思路放上来,当是笔记吧. 需求场景:这个工具起初的目的是为了解决朋友公司对其网络的限制(不可以用任何同步软件,git,外网SVN,U盘只读).本来只是想做一个自动打包和发送邮件的工具,后来就发展成了这个. 软件功能:这个软件最终实现的功能包括1.读取配置文件,对配置文件中指定目录的文件进行日期检测,获取对应修改过的文件.2.将读出的文件进行压缩:3.将压缩文件发送到指定邮箱:4.对压缩文件进行历史版本的保留 根据最

分享一个小工具:Excel表快速转换成JSON字符串

在游戏项目中一般都需要由策划制作大量的游戏内容,其中很大一部分是使用Excel表来制作的.于是程序就需要把Excel文件转换成程序方便读取的格式. 之前项目使用的Excel表导入工具都是通过Office Excel组件来实现数据访问的,效率十分令人不满.一个端游项目一般要上百个表格,手游项目20.30个表格基本也是要的,于是表格导入程序的过程一般要几分钟,项目后期要接近半个小时. 此次分享的小工具,在速度上有质的飞越,比上述方法实现的工具有接近100倍的速度提升: 完整项目源代码下载:https

x01.TextProc: 两三分钟完成的一个小工具

在工作中,遇到这么个问题,需要将 Excel 表中类似 2134-1234-4456 的商品编号输入到单位的程序中,而程序只认 213412344456 这种没有 ‘-’ 的输入.数量比较多,一笔一笔的敲,费时费力不可取,所以转换一下,复制粘贴,不仅可以提高速度,而且也不易出错.并且,由于 Excel 表是别人提供,可能反复遇到此问题,所以写个转换的小工具是必要的. 直接操作 Excel 吗?问题 ”矮小下“,显然用不着这么麻烦.我的方法是,将商品编号列复制粘贴到记事本中保存为 temp.txt

一个小工具的开发

由于大神们的演讲经常托管在土鳖网上,要想看大神的视频就需要些工具. 从而些了这个小工具,不是很完善,只是能用. 其中比较重要的设计是,由于中美之间的ping很好,掉包也很严重,经常会出现tcp连接不上的情况. 根据这情况,我选择一开始就建立10个tcp连接,将所有的请求分散的到这10个连接上,而不是为每一个socks5的连接建立一个远程连接. 那么怎么标示呢?我选择为每一个socks5连接申请一个ID,这个ID在从fog到princess的传输过程中用来标示相应的socks5连接.从而做到tcp

一个小工具,帮你找到赚钱思路

有时候你知道什么方向赚钱,那么你要入场,该找哪个切入点呢?之前我都是瞎找,从朋友圈或者是公众号大家的推文,找到机会. 前段时间从别处知道了这个工具,我试着搜索了两个词语:副业 和 赚钱 ,得到了这样的一些数据. https://mmbiz.qpic.cn/mmbiz_png/FAlIsKMhcyw9f0aD3xd4AibxuUZond6JpR8kYZsccV6DcOdAML3TSsuwB4aO8Npsmc2PMibH7kXIKDG4JibaEJuCQ/640?wx_fmt=png&tp=webp

java String拼接时候的一个小问题

刚才发现了一个小问题,比如我们设置一个字符串对象test并初始化为null,然后执行test+="abc";,此时test的值不是abc,而是nullabc.这是因为我们实际上是让test="abc"+null;,此时null会被强制转为String类型,其值就是"null".例如下面的例子: String test=null+"abc"; System.out.println(test); 输出就是nullabc 所以我们在