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

Project1

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

[已经解决] 【一个正则求教】

[复制链接]

Lv3.寻梦者

梦石
0
星屑
2821
在线时间
585 小时
注册时间
2022-7-13
帖子
89
跳转到指定楼层
1
发表于 2022-8-16 09:01:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 我为鱼肉 于 2022-8-16 09:01 编辑

在字符串中找到<>里的内容,具体是这样的
<任意文本[数字-数字]任意文本[数字-数字]任意文本>
找出<>中的内容
str =~ /<(.+)>/
继续
$~.captures.delete(nil).each do |s|
s =~ /\[([0-9]+)-([0-9]+)\]/
end

这么做确实应该可以匹配到数字,但是不知道怎么输出具体的字符串
比如说 字符串 "字符[1-4]字符[1-4]字符"
我现在要把他还原为  字符1字符1字符,字符1字符2字符,字符1字符3字符,字符1字符4字符,字符2字符1字符,字符2字符2字符等等
该怎么做?

Lv5.捕梦者

梦石
24
星屑
7007
在线时间
247 小时
注册时间
2020-12-4
帖子
306

极短24获奖极短23获奖极短22获奖

2
发表于 2022-8-16 11:15:02 | 只看该作者
本帖最后由 纯属小虫 于 2022-8-17 15:36 编辑

<字符串1[数字1_1 - 数字1_2]字符串2[数字2_1 - 数字2_2]字符串3>
s =~/(.*?)\[(\d+)-\(d+)\](.*?)\[(\d+)-(\d+)\](.*?)/
字符串1 = $1
数字1_1 = $2
数字1_2 = $3
字符串2 = $4
数字2_1 = $5
数字2_2 = $6
字符串3 = $7

如果要增加容错率,比如避免数字间按了空格导致匹配失败的情况,可以用这个
s =~/(.*?)\[\s+(\d+)\s+[-]\s+(\d+)\s+\](.*?)\[\s+(\d+)\s+[-]\s+(\d+)\s+\](.*?)/


(应该没错....吧....)


这个网站的正则挺全的,初学可以看看~
https://r2coding.com/#/README?id ... f%e6%9f%a5%e8%a1%a8

点评

嗷 感谢纠正~~~  发表于 2022-8-17 15:36
匹配第二个数字那应该是打错顺序了 \(d+) (\d+)  发表于 2022-8-17 10:20

评分

参与人数 2星屑 +50 +2 收起 理由
guoxiaomi + 50 + 1 认可答案
我为鱼肉 + 1 我很赞同

查看全部评分

回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
2821
在线时间
585 小时
注册时间
2022-7-13
帖子
89
3
 楼主| 发表于 2022-8-16 12:11:15 | 只看该作者
纯属小虫 发表于 2022-8-16 11:15
s =~/(.*?)\[(\d+)-\(d+)\](.*?)\[(\d+)-(\d+)\](.*?)/
字符串1 = $1
数字1_1 = $2

可以了
如果只写   \s+ 那就是必须要存在空白
(\s+)?  这样的话就是有没有空白,有多少空白都没关系了
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
6483
在线时间
119 小时
注册时间
2020-1-8
帖子
234
4
发表于 2022-8-17 10:53:22 | 只看该作者
本帖最后由 RPGzh500223 于 2022-8-17 11:06 编辑

如果很严(简)格(单)的格式(字符为单字节字符,数字只是0到9)
str = "<A[1-2]b[3-4]C>"
chr1, num1, num2, chr2, num3, num4, chr3 = str.unpack('xaxCxCxaxCxCxa').map!{|i| Integer === i ? i - 48 : i }

并不推荐这么做,效率比正则稍慢……
Ruby本来就灵活,还可以eval,<>之间写成代码的形式,这个就更不推荐了

评分

参与人数 1+1 收起 理由
我为鱼肉 + 1 精品文章回头我试试

查看全部评分

回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-4-20 13:26

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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