正则表达式怎么写及怎么调试
在工作中经常需要些很长的正则表达式,怎样做到边写边调试正则表达式是否正确,也给无法匹配成功时快速定位到问题所在,下面详细介绍下正则表达式怎么写及怎么调试。以/classic/send.php?ts=1407912080686 和/classic/sendmail.php?ts=1408922080721为例,写正则表达式。
操作方法
- 01
先分析下这两条数据的共同点,数据的格式一样/classic/send().php?ts=数字,不同点就是第二条数据send后面多了mail这个单词,ts后面的数字不一样。
- 02
先介绍下正则表达式简单需要用到的:(1) .* 匹配除换行符之外的任意字符 (2)*零次或者多次匹配前面的字符或者子表达式 (3)|表示或的关系 [0-9]*取0-9的数字钟的零个或多个 (4)()去里面的值。
- 03
下载个正则表达式的调试工具regdebug,使用很简单,直接双击regdebug的windows批处理文件,就自动弹出两个框,一个为java运行的框,一个为调试正则表达式的框。
- 04
待解析的数据,直接把上面需要分析的两条数据中的一条复制到框中;正则表达式,填写自己写好的表达式;在正则表达式中使用(),为括号内的值,点击调试,可以在解析结果中看见是否匹配正确。
- 05
现在写正则表达。(/classic/send.*)其中.*代表后面的任意字符,主要测试下前面的是否匹配,点击调试,看看结果中是否把整个数据都表示出来。
- 06
send后面一个有mail一个为空,可以使用一个或的关系,继续写正则表达式(/classic/send(mail|()).*),在调试一下。
- 07
?是特殊字符,使用\?进行匹配,(/classic/send(mail|()).php\?.*),调试一下。
- 08
最后匹配ts后面的数字。使用[0-9]*进行匹配,调试一下。
- 09
在使用另一条数据调试下写好的正则表达式,是否正确。