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

Project1

 找回密码
 注册会员
搜索
12
返回列表 发新帖
楼主: taroxd
打印 上一主题 下一主题

[讨论] 如何匹配字符串中的成对括号?

[复制链接]

Lv3.寻梦者 (版主)

…あたしは天使なんかじゃないわ

梦石
0
星屑
2208
在线时间
4033 小时
注册时间
2010-10-4
帖子
10779

开拓者贵宾

11
 楼主| 发表于 2014-6-20 21:14:24 | 显示全部楼层
本帖最后由 taroxd 于 2014-6-20 21:33 编辑
余烬之中 发表于 2014-6-20 21:05
就这样 完成了一个方法
方法不能直接使用 满足你的适用范围的话 必须先处理字符串 将不需要处理的括号转义  ...


很感谢你的方法……让我参考一下……不过我要的还有替换功能啊233
而且用你的方法,我无法判断那些属于“最外层”。因为你的输出结果是从左至右,而不是由外到内。当然这一点是可以通过 valid.size == 1 来进行判断的
如果我不是需要 i 来表示位置的话,大概也不会比你的方法繁琐吧。
总之虽然我用不到,还是很感谢

另外继续为难一下: '#{\'}\'}'(显示为#{'}'}),替换为}
(这是ruby的双引号中可以做到的)

反正我是没成功
回复 支持 反对

使用道具 举报

Lv3.寻梦者 (版主)

…あたしは天使なんかじゃないわ

梦石
0
星屑
2208
在线时间
4033 小时
注册时间
2010-10-4
帖子
10779

开拓者贵宾

12
 楼主| 发表于 2014-6-21 05:55:30 | 显示全部楼层
本帖最后由 taroxd 于 2014-6-21 07:36 编辑
晴兰 发表于 2014-6-20 22:02
Ruby的正则可能没有其他语言的正则平衡组,但有一个叫做递归匹配的语法,大概的含义就是
mygroup应该匹配{m ...


在Ruby文档里找到了 Subexpression Calls,这个功能似乎就是专为这个时候设计的

十分感谢,问题解决了。如果真要追究 #{'}'} 的话就得语法分析了吧
回复 支持 反对

使用道具 举报

Lv3.寻梦者 (版主)

…あたしは天使なんかじゃないわ

梦石
0
星屑
2208
在线时间
4033 小时
注册时间
2010-10-4
帖子
10779

开拓者贵宾

13
 楼主| 发表于 2014-6-21 06:27:50 | 显示全部楼层
本帖最后由 taroxd 于 2014-6-21 06:56 编辑
晴兰 发表于 2014-6-20 22:02
Ruby的正则可能没有其他语言的正则平衡组,但有一个叫做递归匹配的语法,大概的含义就是
mygroup应该匹配{m ...


那么我再问一个问题,如何在gsub中引用a?当然这个问题在这里其实不重要,但我希望能给之后留作参考。

点评

明白  发表于 2014-6-21 10:04
$~[:a]  发表于 2014-6-21 10:01
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-5-8 14:26

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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