QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 756|回复: 4

问一个关于正则表达式的问题

[复制链接]
发表于 2003-9-7 21:29:17 | 显示全部楼层 |阅读模式
文档里说 可以匹配字符的有. *等等
.表示任意一个字符
*表示任意长的字符
就好像通常再shell下用的那样我们用file*来匹配以file开头的任意文件
但是很多例子里的匹配都是用.*这样连用来匹配 (好像特别是匹配末尾字符串)
不太明白为什么这样使用?
发表于 2003-9-8 14:49:40 | 显示全部楼层
正则表达式的*和shell里的*不一样,shell里的*代表任意个字符,正则表达式里的*代表前一个字符的任意次,比如a* 代表N个a,所以要表示任意长的字符就要用.*
回复

使用道具 举报

 楼主| 发表于 2003-9-8 15:01:37 | 显示全部楼层
终于有人回了
可是感觉*也是匹配任意字符的阿
这里的例子是一个水果的售价表 比如这样的
banana  $12.09  200kg  watushe
为了找小于1$的水果
它使用的匹配是 /*\$[1-9]\.[0-9][0-9].*\
前面的banana就用一个*来替代 但是后面的重量等等信息用.*来替代?
回复

使用道具 举报

发表于 2003-9-8 18:48:37 | 显示全部楼层
/*\$[1-9]\.[0-9][0-9].*\
这个是从哪来的?怎么前面是斜线后面是反斜线,而且这个应该是大于1小于10吧。
我认为应该是:/\$0\.[0-9][0-9]/
其实用/\$0/或/\$0\./就可以
回复

使用道具 举报

 楼主| 发表于 2003-9-9 09:07:33 | 显示全部楼层
随手打的 有些打错了呗
我试的时候 你这样的字符串是匹配不到整个行的啊?(难道这也有不一样?)前面后面的任意字符可以在匹配串里省略?
而且因为前面的型号 后面的量 都会有数字 所以它的例子里规定了xxx.xx的模式 所以不用简单的0.什么的
这些都没什么
我想知道的就是 为什么他用*来匹配前续字串 而要用.*来匹配后续的字串 而且在例子中好像一直是这个风格的 是不是有什么讲究
回复

使用道具 举报

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

本版积分规则

GMT+8, 2024-11-14 23:45 , Processed in 0.045249 second(s), 16 queries .

© 2021 Powered by Discuz! X3.5.

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