查看: 3053|回复: 3

[已经解决] $~是啥意思,代码详见。

[复制链接]
梦石
0
星屑
15041
在线时间
2230 小时
注册时间
2019-1-24
回帖
964

R考场第七期纪念奖

发表于 2019-11-18 14:30:45 | 显示全部楼层 |阅读模式

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

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

×
[pre lang="ruby"]  #--------------------------------------------------------------------------
  # ● 获得匹配正则表达式的所有属性的ID和匹配信息
  #     返回值:二维阵列[n][0]中的ID,[n][1]中的匹配信息(MatchData)
  #--------------------------------------------------------------------------
  def self.get_indices(regexp)
    indices = []
    for i in 1...$data_system.elements.size
      indices.push([i, $~]) if regexp =~ $data_system.elements
    end
  end[/pre]

这是二刀流开头定义的一段代码,里面有大量的正则和数组处理,看的我头昏脑胀
希望有人帮忙解惑

第一段代码:答题意思我知道,就是传入regexp和每个属性名称进行正则匹配,
如果匹配成功就加入indices数组当中, $~起到啥作用?我搜索了下,就有个概念性的解答。
储存正则表达式匹配中间过程信息的类,可以通过$~获取。
具体作用希望有人能发个实例看看,是什么过程


老黄鸡

梦石
4
星屑
45694
在线时间
7948 小时
注册时间
2009-7-6
回帖
13337

MZ评测员RM创作大赛01组委会开拓者贵宾

发表于 2019-11-18 18:13:06 | 显示全部楼层
就理解为正则表达式中匹配到的结果吧,你可以进行一次正则匹配后输出$~变量查看

评分

参与人数 1星屑 +50 收起 理由
RyanBern + 50 认可答案

查看全部评分

RGDirect - DirectX驱动的RGSS,点我了解.
(排满,暂停)RM全系列成套系统定制请联系QQ1213237796
不接受对其他插件维护的委托
回复

使用道具 举报

梦石
0
星屑
14720
在线时间
2175 小时
注册时间
2016-9-20
回帖
777
发表于 2019-11-18 19:45:20 | 显示全部楼层
QQ截图20191118194321.png

QQ截图20191118194453.png
从国外google上找看不明白說什么
贴子只供参考我贴子内容有很多只是我自己标识的内容代指不是原来意思,偏向发贴当时的想法(后来回看贴发现有很多错误,会造成误导 ),如果想靠谱点应 找相关正确的文章   -- 2025/4/19
回复

使用道具 举报

梦石
0
星屑
14720
在线时间
2175 小时
注册时间
2016-9-20
回帖
777
发表于 2019-11-20 22:47:08 | 显示全部楼层
本帖最后由 ppspssss 于 2019-11-21 11:05 编辑

再次認真找,一找就找到了
$~
在当前作用域中,最后一次匹配成功的相关信息(MatchData对象——为处理与正则表达式的匹配过程相关的信息而设置的类)。可以使用$~[n]的形式从该数据中抽取第n个匹配结果($n),相当于是$1、$2……等同于Regexp.last_match。

  1. irb(main):012:0> $~   
  2. => #<matchdata "foobar"="" 1:"foo"="" 2:"bar"="" 3:nil="">   
  3. irb(main):026:0> $1  
  4. => "foo"  
  5. irb(main):027:0> $~[1]   
  6. => "foo"   
  7. </matchdata>
复制代码

出處:https://www.cnblogs.com/rubylouv ... /07/23/1529237.html
还有$`,$!,$@,$1,$&,$",$/,$\,$*,$$,$`,$+, $_,"$,"   不知有啥用就是了


看樣子,是叫"内部变量"的東西
p $~可以見到是匹配到所有東西的意思 ??? <待定

意思是p $~可以看到所有匹配到的東西, 比如第1个,第2个匹配到的東西



评分

参与人数 2星屑 +50 赞 +1 收起 理由
RyanBern + 50 认可答案
miantouchi + 1 塞糖

查看全部评分

贴子只供参考我贴子内容有很多只是我自己标识的内容代指不是原来意思,偏向发贴当时的想法(后来回看贴发现有很多错误,会造成误导 ),如果想靠谱点应 找相关正确的文章   -- 2025/4/19
回复

使用道具 举报

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

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部