LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1347|回复: 13

问几个正则表达式的问题,搞了半天不会写。

[复制链接]
发表于 2005-8-22 10:46:40 | 显示全部楼层 |阅读模式
1.只匹配电话号码,即(086)10-23423456。
要求是必须以(开头,中间有)和-,除此之外全部为数字。

2.手机号码,类似电话号码,但是-号是不必须的。

3.日期格式:只允许使用2005-06-07 12:00:00这样的格式。


谢谢各位大虾帮忙啊!!!!
发表于 2005-8-22 13:32:16 | 显示全部楼层
这些应该超简单吧,随便找本关于正则式的书看看就知道了。
我的解答,凭记忆写的,仅供参考:
1、\([0-9]*\)[0-9]*\-[0-9]*
2、\([0-9]*\)[0-9]*\-?[0-9]*
3、[0-9][0-9][0-9][0-9]\-[0-9][0-9]\-[0-9][0-9]\ [0-9][0-9]\:[0-9][0-9]\:[0-9][0-9]
回复 支持 反对

使用道具 举报

发表于 2005-8-22 13:34:44 | 显示全部楼层
对于时间要精确到60进制,就修改为[0-5][0-9] , 要12进制就[0-1][0-9]
回复 支持 反对

使用道具 举报

发表于 2005-8-22 14:59:37 | 显示全部楼层
Post by welans
这些应该超简单吧,随便找本关于正则式的书看看就知道了。
我的解答,凭记忆写的,仅供参考:
1、\([0-9]*\)[0-9]*\-[0-9]*

abcdefg()- 似乎这个可以
Post by welans

2、\([0-9]*\)[0-9]*\-?[0-9]*

xxxx 似乎可以
Post by welans

3、[0-9][0-9][0-9][0-9]\-[0-9][0-9]\-[0-9][0-9]\ [0-9][0-9]\:[0-9][0-9]\:[0-9][0-9]

0000-90-99 99:99:99 似乎可以
回复 支持 反对

使用道具 举报

发表于 2005-8-22 15:01:17 | 显示全部楼层
Post by welans
对于时间要精确到60进制,就修改为[0-5][0-9] , 要12进制就[0-1][0-9]

2月30号可以吗?
回复 支持 反对

使用道具 举报

发表于 2005-8-22 15:32:38 | 显示全部楼层
Post by welans
这些应该超简单吧,随便找本关于正则式的书看看就知道了。
我的解答,凭记忆写的,仅供参考:
1、\([0-9]*\)[0-9]*\-[0-9]*
2、\([0-9]*\)[0-9]*\-?[0-9]*
3、[0-9][0-9][0-9][0-9]\-[0-9][0-9]\-[0-9][0-9]\ [0-9][0-9]\:[0-9][0-9]\:[0-9][0-9]

我想知道这是不是C语言语法啊?看上去有点像T-SQL语句呢?
回复 支持 反对

使用道具 举报

发表于 2005-8-22 20:40:51 | 显示全部楼层
C语言的语法中里面没有正则表达式。
回复 支持 反对

使用道具 举报

发表于 2005-8-22 21:47:37 | 显示全部楼层
那这是什么语法啊?
回复 支持 反对

使用道具 举报

发表于 2005-8-22 22:35:10 | 显示全部楼层
php,perl,bash等脚本语言有.
java(jdk1.4以后),cpp(boost) 等语言也有正则表达式库.
回复 支持 反对

使用道具 举报

发表于 2005-8-23 09:46:37 | 显示全部楼层
1、\([0-9]*\)[0-9]*\-[0-9]*
abcdefg()- 似乎这个可以

2、\([0-9]*\)[0-9]*\-?[0-9]*
xxxx 似乎可以

不是吧??你怎么匹配的?

日期要靠正则式严格过滤可能吗?像2月28/29/30日貌似是上下文相关的,或许这样的正则式根本不能写出来。
按楼主的意思就不要求全责备了。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表