`
jsntghf
  • 浏览: 2567021 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

根据正则匹配hash

阅读更多

首先写个方法。

 

class Hash
  def grep(pattern)
    inject([]) do |res, kv|
      res << kv if kv[0] =~ pattern or kv[1] =~ pattern
      res
    end
  end
end

 

现在,我们可以这样来用它。

 

h = { "apple tree" => "plant", "ficus" => "plant",
      "shrew" => "animal", "plesiosaur" => "animal" }

    p h.grep(/pl/)  # => [["ficus", "plant"], ["apple tree", "plant"], ["plesiosaur", "animal"]]
    p h.grep(/plant/)  # => [["ficus", "plant"], ["apple tree", "plant"]]
    p h.grep(/i.*u/)  # => [["ficus", "plant"], ["plesiosaur", "animal"]]

 

分享到:
评论
2 楼 javaer_lee 2009-12-29  
llllklk
1 楼 Hooopo 2009-12-24  
居然返回了数组。。。
楼主这样一点意义也没有..
class Hash
  def key_scan pattern
    Hash[*select{|k, _| k =~ pattern}.flatten]
  end

  def value_scan pattern
     Hash[*select{|_, v| v =~ pattern}.flatten]
  end
end


h = { "apple tree" => "plant",
      "ficus" => "plant",
      "shrew" => "animal",
      "plesiosaur" => "animal"
   }

p h.key_scan(/pl/)   #{"apple tree"=>"plant", "plesiosaur"=>"animal"}
p h.value_scan(/pl/) #{"apple tree"=>"plant", "ficus"=>"plant"}



相关推荐

    swift-工具类\toolbox正则匹配加密压缩时间戳处理

    "toolbox"通常指的是一个集合了多种实用功能的库或模块,其中包括正则表达式匹配、数据加密、文件压缩、时间戳处理、emoji支持、对象序列化与反序列化、本地通知、单例模式、设备信息获取、图片处理以及键盘管理等。...

    java工具类-正则

    在Java编程中,正则表达式(Regular Expression)是一种用于匹配字符串的强大工具。它广泛应用于文本处理、数据验证、模式匹配等场景。下面是一些基本概念及其在Java中的实现: - **基本语法**: - `^` 表示字符串...

    正则表达式函数笔记.php

    //----正则匹配----- $p = '/example/' $str = "I am an example"; preg_match($p,$str); //如果$str中含有$p两个/中间的内容(内容不要求完全相同,要求为包含于关系),则返回真 //此时'/example/'就为一正则...

    perl正则表达式的整理

    (condition)yes-pattern|no-pattern)`:根据condition是否匹配来决定执行yes-pattern还是no-pattern。 9. **后向引用**: - `\1`, `\2`, ...:引用之前捕获的组,例如`\1`引用第一个捕获组。 10. **模式修饰符**...

    Nginx if语句加正则表达式实现字符串截断

    然后,通过if语句结合正则表达式匹配$hash变量的前8个字符,并将匹配结果赋值给$hash变量本身。这样,通过echo指令输出的$hash变量中只包含原始哈希值的前8位字符。 示例代码如下: ``` location /test/ { default...

    nginx高级知识.pdf

    * 精准匹配 &gt; 普通匹配 &gt; 正则匹配(非正则除外) * Location 指令用于定义URI的匹配规则 * 可以使用正则表达式来匹配URI 二、代理传参 * proxy_pass 指令用于将请求代理到其他服务器 * 可以将整个 path 部分传入 ...

    nginx转发规则、负载均衡验证素材

    2. `~`:区分大小写的正则匹配。 3. `~*`:不区分大小写的正则匹配。 4. `^~`:如果URI以指定的字符串开头,那么匹配此location,并停止搜索其他location。 例如,将所有以`.jpg`结尾的请求转发到特定目录: ```...

    提取ID号的序列

    Perl脚本应用于提取ID号的序列 ...该脚本使用Hash表和正则表达式等技术来快速匹配ID号和序列信息,并将其输出到指定的文件中。本脚本可以应用于小RNA高通量测序数据分析、数据挖掘和生物信息学等领域。

    几个小例子教你如何实现正则表达式highlight高亮

    这些正则表达式分别用来匹配字符串中的不同元素,例如去除空白字符、匹配字符串、匹配正则表达式、匹配注释、匹配文档注释以及匹配关键字。每个正则表达式都针对特定的模式进行了设计,以实现更精确的匹配。 为了...

    基于mapReduce的大规模实体匹配的高效方法

    我们使用局部敏感哈希(Locality Sensitive Hash, LSH)函数为高维实体生成低维签名;引入一系列随机算法,以高概率确保在Reduce阶段相似的签名能够匹配;并且我们的框架包含减少冗余相似度计算的解决方案。实验表明...

    react-router-hash:用于React应用程序的最小路由器

    react-router-hashA minimal router for react app, only supports hash urlReact极简路由,仅支持hash url,可以采用两种方式进行路由配置,其中第二种配置必须在Router节点上配置sign="colon"支持简单正则格式,...

    perl脚本,初学者可以参考,主要是字符串,hash,文件

    Perl还支持模式匹配和替换,使用`=~`操作符结合正则表达式,如`$str =~ s/pattern/replacement/`。 2. **哈希(Hash)**:Perl的哈希是一种关联数组,它将唯一的键与对应的值关联起来。键和值都是字符串,但值可以...

    .net 开发辅助工具

    例如,`Match`方法用于查找字符串中与正则表达式匹配的第一个实例,而`Matches`方法则可以找到所有匹配项。正则表达式的语法非常丰富,如`^`表示字符串的开始,`$`表示字符串的结束,`.`匹配任意字符,`\d`匹配数字...

    计算机软件-编程源码-Memo的查找功能.zip

    常见的有线性搜索(Linear Search)、二分查找(Binary Search)以及更高级的哈希表(Hash Table)和正则表达式匹配。对于Memo组件,线性搜索通常是最简单也最直观的选择,因为它的实现复杂度相对较低,适用于无序...

    Nginx负载均衡资料

    例如,对于特定的操作(如`save`、`send`等),可以设置location块,使用`~*`进行不区分大小写的正则匹配,然后将这些请求代理到指定的负载均衡组。 **五、负载均衡策略的扩展性** 1. **健康检查**:Nginx可以通过...

    perl学习源码

    在这个"perl学习源码"中,我们可以深入探讨Perl的基础知识,包括正则表达式、文本处理、哈希(Hash)操作、IO(输入/输出)处理以及控制结构。下面将详细解释这些关键概念。 1. **Perl正则表达式**: Perl中的正则...

    JS学习笔记

    最后,正则表达式的属性和方法也被提及,如`re.test(string)`和`re.exec(string)`,它们分别用于测试字符串是否匹配正则表达式和返回匹配的字符串。 在实际的应用中,文档还展示了如何通过JavaScript操作浏览器的...

    route-matcher:一个小小的路由匹配器

    在代码实现上,路由匹配器通常采用正则表达式或者其他字符串匹配算法来完成这些任务。对于“route-matcher”,我们可以通过阅读源码来理解它的实现方式,但由于描述中并未提供具体代码,我们只能推测其内部可能采用...

    Python-Leaked20一个用于检查Hashcodes密码和电子邮件是否泄露的工具

    2.0可能利用了这些库来快速访问和处理大量的数据,比如Pandas用于数据处理,requests库用于网络请求,以及可能的正则表达式库re来进行字符串匹配等。 在使用Leaked? 2.0时,用户可以输入他们的哈希码(如MD5或SHA-...

    Nginx详解与技术分享

    - `^~`:以某个前缀开头的正则匹配。 #### 总结 Nginx作为一款优秀的开源服务器软件,凭借其高性能、稳定性以及丰富的功能,在互联网行业中占据着举足轻重的地位。无论是前端开发者还是后端开发者、运维工程师...

Global site tag (gtag.js) - Google Analytics