设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 1011|回复: 2
打印 上一主题 下一主题

[已经解决] 再问一个关于正则表达式的问题

 关闭 [复制链接]

Lv1.梦旅人

彩色的银子

梦石
0
星屑
50
在线时间
190 小时
注册时间
2006-6-13
帖子
1361

贵宾

跳转到指定楼层
1
发表于 2009-10-21 23:09:42 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
比如
fileindex = "Graphics/Pictures/p (0)=>0<=500\000Graphics/Pictures/p (1)=>500<=200\000"
file = "Graphics/Pictures/p (0)"
p fileindex[/#{file}=>(\d*)<=(\d*)\000/] # nil


file = "Graphics/Pictures/$p"
p fileindex[/#{file}=>(\d*)<=(\d*)\000/] # nil
貌似遇到空格或者符号之类的会匹配不成功..
有什么可解决的办法
-.-

Lv1.梦旅人

梦石
0
星屑
61
在线时间
24 小时
注册时间
2008-8-5
帖子
1924
2
发表于 2009-10-22 02:50:08 | 只看该作者
括号在正则表达式中是用来后向引用的,如果要匹配字符串中的括号则需要用反斜杠转义:
  1. /\(0\)/ =~ "(0)"
复制代码
而如果是把字符串嵌入到正则表达式的话,就需要转义反斜杠本身,这样在嵌入到正则表达式的时候才能保留反斜杠本身,否则还是只有一个括号:
  1. str = "\(0\)"
  2. p /#{str}/       # /(0)/
  3. str = "\\(0\\)"
  4. p /#{str}/       # /\(0\)/
复制代码
所以应该是:
  1. file = "Graphics/Pictures/p \\(0\\)"
  2. p fileindex[/#{file}=>(\d*)<=(\d*)\000/]
复制代码
回复 支持 反对

使用道具 举报

Lv1.梦旅人

彩色的银子

梦石
0
星屑
50
在线时间
190 小时
注册时间
2006-6-13
帖子
1361

贵宾

3
 楼主| 发表于 2009-10-22 08:54:31 | 只看该作者
受教了。我以为嵌入时会自动转义什么的呢。看来只能从原字符下手了。
=_=之前还想找个字符代替呢。
-.-
回复 支持 反对

使用道具 举报

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

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2025-7-20 20:05

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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