有这样一串字符:2011-09-21-21:33:33:000000
如果使用一般的写法可以这样做:
(\d{1,4}-\d{1,2}-\d{1,2}-\d{1,2}:\d{1,2}:\d{1,2}:\d{1,6})|(\d{1,4}\/\d{1,2}\/\d{1,2}\/\d{1,2}:\d{1,2}:\d{1,2}:\d{1,6})
但是这样写又长又不好维护,下面就是/1出场的时候了,如下:
\d{1,4}(-|\/)\d{1,2}(\1\d{1,2}){2}(:\d{1,2}){2}:\d{1,6}
这个时候就该解释一下\1具体意思了,如下:
(-|\/)捕获- 或者\
\1是就是前面捕获的这个符号
以保证3次出现的一定是同一个符号
以保证3次出现的一定是同一个符号
不过有牛人说,像这种字符直接转换可以会更好些,写正则反而麻烦了。有时候不要为了展示自己而费了程序
本文探讨了在正则表达式中使用优化技巧和正交思考方法,通过实例展示如何简化复杂的正则表达式,提高程序的可读性和维护性。同时,文章也提出了一种更直接的方法来处理日期格式,减少使用正则表达式的必要性,旨在提升开发效率和代码质量。

8万+

被折叠的 条评论
为什么被折叠?



