用正则匹配相对路径

sybtjp 2009-09-09 07:23:58
怎么用正则表达式匹配相对路径

如: ../../img/src.gif;
resouce/sdc/de/1.css;
img/2009-09-09/jing/css/1.css;
bk/2009-09-09/jing/css/1.js?=5;
ifddf/fdsdfsd/sds888/sdd22/2.swf&=22222222wdsjdsdkd&;

..........
.........
等等

...全文
1281 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
sybtjp 2009-09-10
  • 打赏
  • 举报
回复
我说的绝对路径都是url的。没有盘符的,我从网上抓的http包还元好数据后,从路面提取所有链接,但是要讲相对url(如: 。。、。。/img.gif)转换为绝对url(就是在相对的前面加协议和域名),现在就是不知道怎么匹配相对url。

还有为什么同样的正则url匹配表达式不同的正则库匹配的结果不一样?
  • 打赏
  • 举报
回复
http://www.kuqin.com/cpluspluslib/20070912/1033.html

正则的规则都是基本一样的,有很多库实现,可以用boost这个来学学
taodm 2009-09-10
  • 打赏
  • 举报
回复
正则没有捷径,楼主要靠自己多练。
xiaocai0001 2009-09-10
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 azraeln 的回复:]
引用 5 楼 xiaocai0001 的回复:
不是以/开头的都是相对路径啊
^[^/].*$

绝对路径也不是用/开头的啊,比如C:\windows这个就是绝对路径之一
[/Quote]

MS列出来的都是URI路径吧, 难道LZ楼主说的是Windows下的文件路径?
nobody@noone 2009-09-10
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 xiaocai0001 的回复:]
不是以/开头的都是相对路径啊
^[^/].*$
[/Quote]
绝对路径也不是用/开头的啊,比如C:\windows这个就是绝对路径之一
nobody@noone 2009-09-10
  • 打赏
  • 举报
回复
绝对路径都带有个:的,发现没有?
xiaocai0001 2009-09-10
  • 打赏
  • 举报
回复
不是以/开头的都是相对路径啊
^[^/].*$
zhongchengli 2009-09-10
  • 打赏
  • 举报
回复
主要是规则!
xiaocai0001 2009-09-10
  • 打赏
  • 举报
回复
各家的正则表达式基本意思一样, 但不尽相同.
python有一套, perl有一套, awk, sed, grep又是一套,vim有自己的
superbtl 2009-09-09
  • 打赏
  • 举报
回复
boost有正则表达式 直接找/这个字符就能把
  • 打赏
  • 举报
回复
这个容易,问题是啥情况才是绝对路径?
PeacefulBY 2009-09-09
  • 打赏
  • 举报
回复
http://topic.csdn.net/t/20030305/17/1495480.html
正则巅峰一个超强字符串处理工具,之所以取名叫“正则巅峰”,是因为它主要就是靠正则,将正则真正融入,无须依赖什么开发工具或者某个语言即可直接使用正则处理你手头文本数据相关的事务,真正将正则应用达到了一个巅峰。 它最擅长的就是字符串处理,文本处理,可以直接在命令提示符下调用,同样在你的程序的中也可以调用。使用非常方便。 如果你比较熟悉正则,那么你会发现正则巅峰(Regtop)会给你在日常工作中带来极大的便利,使得你离不开它。因为只需极少的命令即可处理一个比较复杂的问题,而且绿色环保无公害:) 此工具的另一个特色就是可以直接从网页上采集数据,并可以使用正则对数据做基础的处理然后保存到本地,可以广泛的应用于网页采集。 下面介绍下其主要使用方法: 语法: Regtop 参数1 参数2 参数3 参数4 参数5 参数1 对数据源的操作的方式。共有-g和-r两种形式,下面分别介绍: -g 表示获取,仅仅获取源数据中需要的内容,-g紧接着的后面还有两个缺省元素,第一个一般是t,表示结果以表格形式形式保存,t后面是表格各列之间的分隔符,默认是“,”,一般在要将结果保存为csv文件时会这样设置。可以尝试用下-gt 和 -gt- 和 -g 的区别 -r 表示替换,将数据源中的指定内容替换成其它内容 参数2 数据源。可以是个网址也可以是个本地文件(文本格式)的路径 如果是网址的话需要加个“-w:”然后才可以写网址,表示数据来自与网络,工作时regtop会自动获取该网页的页面源代码,获取方式有两种,utf8模式和普通模式,这个可以通过regtop –d命令设置全局开关。 如果是本地文件的话可以直接写,也可以加个字符-f:然后写路径。这里支持相对路径和绝对路径,直接写个文件名的话就是表示regtop所在的目录。 参数3 处理结果保存位置。可以是个直接的文件路径,同样支持相对路径和绝对路径。 如果和参数2是相同的那么可以写作“%0” 如果对该文件是追加方式那么可用“-a:”前缀表示,默认是覆盖。 参数4 需要匹配的正则表达式 参数5 可缺省。此参数是获取需要的匹配内容(-g)或需要替换成的字符(-r),跟参数1相关,下面分别介绍: (1).当参数1为-g时表示获取匹配到的结果中的哪些内容。可缺省。匹配成功后得到的结果可以分为两类:一类是整个表达式的匹配结果,这里称为父匹配;还有一类是括号捕获的结果,这里称为子匹配。 这时的参数5是可缺省,表示仅仅获取父匹配。 如果非缺省的话就是表示只需要指定的结果,形式需要按Regtop指定的规则:Regtop对匹配结果进行了编号,从0开始,0表示父匹配结果,1表示子匹配的第1组,2表示子匹配的第2组…。 假设有个表达式为“a(.*?)b(.*?)c(.*?)d”,那么子匹配有3组,如果我们仅仅需要获取子匹配的第1组和第3组,这时参数5就可以写作“0,1,3”,这里有3个数字,第一个数字的意义和后面的两个是有很大区别的。第一个数字0表示不需要父匹配结果,如果需要的话就写作1,完整的表达式为“1,1,3”,也就是说第一个数字永远只能是0或1,意义就是是否需要父匹配结果。 后面的理解起来就简单多了,1显然就是表示获取子匹配的第1组,3就表示第三组,这里是有顺序的,后面的两个3和1调换下的话,那么输出结果组3的将会排在1的前面,当然也可以重复,比如我要子匹配的3输出两次,那么就写作“0,1,3,3”。如果使用了不存在的子匹配,例如这里用了4那么程序会忽略然后继续处理下一个数字,具体的用户可以用具体的数据去试试。 在这里有个典型的应用就是对csv文件的处理,比如要将文件的第1列和第3列调换下,那么用regtop就可以轻而易举解决了,这里的参数5就是“0,3,2,1”。具体应用实例请参照:http://topic.csdn.net/u/20091218/23/f6abdfed-eb76-4311-9d94-fb0d495372dc.html (2). 当参数1为-r时表示需要替换成的内容。可缺省,缺省表示替换为空。这里一般是个固定的字符串,还可以包含正则本身的特性,例如捕获的结果含有子匹配,那么这里就可以用$1表示子匹配的第1组,$2表示子匹配的第2组,这个属于正则知识本身的范畴了,这里不做讨论,主要说下Regtop中自身的特性,如果替换后的内容包含特殊的字符怎么办?regtop中采用了和大多数语言一样使用了转义的方法处理,例如回车用/r/n表示,制表符用/t表示,具体有时间会整理出一个列表,大多都和标准一样。 regtop下载地址一:http://www.symental.com/sfw/regtop.zip regtop下载地址二:http://download.csdn.net/source/1917925(版本较旧,建议下载上面一个) 其他使用范例: http://topic.csdn.net/u/20100421/11/9558fc42-418d-44e5-9818-790e499e0bee.html (替换指定文件中数据的范例,参考4楼) http://topic.csdn.net/u/20110720/12/119ee538-e3b0-4b28-9ec7-22b61aa99486.html (获取指定文件中数据的范例,只获取指定“列”,参考30楼) http://topic.csdn.net/u/20091218/23/f6abdfed-eb76-4311-9d94-fb0d495372dc.html (获取指定文件中的数据的范例,调整指定“列”,参考7楼) http://blog.csdn.net/sysdzw/article/details/6141844 (正则测试工具,可以快速测试正则表达式的正确性,可以和regtop配套使用) http://hi.baidu.com/sysdzw/blog/item/646cd1f9a4a2c953252df292.html(从网页获取数据并保存为csv文件的范例) http://blog.csdn.net/sysdzw/article/details/6158530 (应用范例推荐:巧用正则巅峰采集黄金白银大盘价信息) 具体使用说明参考:http://blog.csdn.net/sysdzw/article/details/5379345

5,531

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 模式及实现
社区管理员
  • 模式及实现社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧