返回顶部
首页 > 资讯 > 精选 >pampy超强的模式匹配工具怎么用
  • 158
分享到

pampy超强的模式匹配工具怎么用

2023-06-20 14:06:35 158人浏览 泡泡鱼
摘要

小编给大家分享一下pampy超强的模式匹配工具怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!何为模式匹配模式匹配即给定某种模式,用这种模式去检查序列或字符串

小编给大家分享一下pampy超强的模式匹配工具怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

何为模式匹配

模式匹配即给定某种模式,用这种模式去检查序列或字符串是否符合这种模式,这种技术在自然语言处理中经常使用。

下载pampy

pip install pampy

栗子

单个字符匹配

以下代码可以完成单个字符在对象中的匹配,使用_表示匹配结果。

from pampy import _,matcha=['a',1,'b',2,'c',3,'d',4]patter = ['a',1,'b',2,'c',3,'d',_]action=lambda x: f'result is: {x}'print(match(a,patter,action))

执行结果:

>>> python test.py
>>> result is: 4

匹配开头和结尾

对于开头或者结尾连续的对象,我们可以使用这种方式实现快速匹配。

from pampy import _,match,HEAD,TaiLa=['a',1,'b',2,'c',3,'d',4]patter = [HEAD,_,'b',2,'c',3,TAIL]action=lambda h,b,t: ({'head':h,'body':b,'tail':t})print(match(a,patter,action))

执行结果:

>>> Python test.py
>>> {'head': 'a', 'body': 1, 'tail': ['d', 4]}

以上,我们使用HEAD匹配了开头的若干字符,中间使用_匹配了某个数字,结尾我们使用TAIL配了若干字符。

匹配字典的key

当我们只知道某个字典的部分内容,却想要得到某个value的key时,用这种方式事半功倍。

from pampy import _,match,HEAD,TAILmy_dic={    'phone':{'huawei':'ok','iphone':'Good','chuizi':'bad'},    'language':{        'chinese':['xian','beijing'],        'english':['usa','canada']    }}patter = {_:{_:'ok'}}action=lambda a,b: {'key1':a,'key2':b}print(match(my_dic,patter,action))

运行结果:

>>> python test.py
>>> {'key1': 'phone', 'key2': 'huawei'}

如上,我们已经匹配到了字典的第一层和第二层的Key值。

如上面的例子,我们的模式一定要保持字典结构的完整。

使用

特性1: HEAD 和 TAIL

HEAD和TAIL能代表某个模式的前面部分或后面部分。

比如将特定模式后的元素都变成元组:

from pampy import match, HEAD, TAIL, _x = [-1, -2, -3, 0, 1, 2, 3]print(match(x, [-1, TAIL], lambda t: [-1, tuple(t)]))# => [-1, (-2, -3, 0, 1, 2, 3)]  将特定模式前的元素设为集合,后面的元素设为元组:from pampy import match, HEAD, TAIL, _x = [-1, -2, -3, 0, 1, 2, 3]print(match(x, [HEAD, _, _, 0, TAIL], lambda h, a, b, t: (set([h, a, b]), tuple(t))))# => ({-3, -1, -2}, (1, 2, 3))

特性2:甚至能匹配字典中的键

在你不知道哪个键下有某个值的时候,这招非常好用:

from pampy import match, HEAD, TAIL, _my_dict = {    'global_setting': [1, 3, 3],    'user_setting': {        'face': ['beautiful', 'ugly'],        'mind': ['smart', 'stupid']    }}result = match(my_dict, { _: {'face': _}}, lambda key, son_value: (key, son_value))print(result)# => ('user_setting', ['beautiful', 'ugly'])

特性3: 搭配正则

不仅如此,它还能搭配正则一起使用哦:

import refrom pampy import match, HEAD, TAIL, _def what_is(pet):    return match(pet,        re.compile('(\\w+),(\\w)\\w+鳕鱼$'),     lambda mygod, you: you + "像鳕鱼",    )print(what_is('我的天,你长得真像鳕鱼'))     # => '你像鳕鱼'

以上是“pampy超强的模式匹配工具怎么用”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网精选频道!

--结束END--

本文标题: pampy超强的模式匹配工具怎么用

本文链接: https://lsjlt.com/news/297465.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • pampy超强的模式匹配工具怎么用
    小编给大家分享一下pampy超强的模式匹配工具怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!何为模式匹配模式匹配即给定某种模式,用这种模式去检查序列或字符串...
    99+
    2023-06-20
  • pampy超强的模式匹配工具的实现
    目录何为模式匹配下载pampy栗子单个字符匹配匹配开头和结尾匹配字典的key使用特性1: HEAD 和 TAIL特性2:甚至能匹配字典中的键特性3: 搭配正则何为模式匹配 模式匹配...
    99+
    2024-04-02
  • Python神器之Pampy模式匹配库的用法详解
    目录Pampy 是哪路神仙Pampy 的花式秀匹配单个字符匹配字典匹配开头和结尾总结大家好,我是闲欢,一个很卷的程序员! 今天给大家分享一个炒鸡炒鸡简单又好用的神器—&m...
    99+
    2024-04-02
  • Beam中的模式匹配怎么实现
    在Beam中,模式匹配可以通过使用Match和Case来实现。Match用于指定要匹配的值,Case用于定义匹配的模式和对应的处理逻...
    99+
    2024-04-02
  • 使用Spring自身提供的地址匹配工具匹配URL操作
    目录使用Spring自身提供的地址匹配工具匹配URLspring url路径匹配用法经验介绍先贴一段代码来快速了解一下它的用法总结如下ANT方式的通配符有三种url路径匹配规则使用S...
    99+
    2024-04-02
  • Scala中的模式匹配是什么
    这篇文章主要介绍Scala中的模式匹配是什么,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!Scala 是一门多范式(multi-paradigm)的编程语言,设计初衷是要集成面向对象编程和函数式编程的各种特性,Sca...
    99+
    2023-06-27
  • Linux下的强力Python工具json.tool怎么用
    本篇文章给大家分享的是有关Linux下的强力Python工具json.tool怎么用,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。Linux 用户经常需要在终端查看一些数据,从...
    99+
    2023-06-16
  • C#模式匹配有哪些及怎么实现
    这篇文章主要介绍“C#模式匹配有哪些及怎么实现”,在日常操作中,相信很多人在C#模式匹配有哪些及怎么实现问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C#模式匹配有哪些及怎么实现”的疑惑有所帮助!接下来,请跟...
    99+
    2023-06-29
  • 怎么禁用WordPress5.8小工具区块编辑模式
    这篇文章主要介绍了怎么禁用WordPress5.8小工具区块编辑模式,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。WordPress教程:如何禁用WordPress5.8小工...
    99+
    2023-06-20
  • linux grep模糊匹配方法怎么使用
    在Linux中,可以使用`grep`命令进行模糊匹配。`grep`命令用于在文本文件中查找指定模式的行。要使用`grep`命令进行模...
    99+
    2023-09-25
    linux
  • C语言中怎么实现朴素模式匹配算法
    这篇文章主要介绍“C语言中怎么实现朴素模式匹配算法”,在日常操作中,相信很多人在C语言中怎么实现朴素模式匹配算法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C语言中怎么实现朴素模式匹配算法”的疑惑有所帮助!...
    99+
    2023-06-08
  • Notepad++怎么使用正则表达式匹配
    今天小编给大家分享一下Notepad++怎么使用正则表达式匹配的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。Notepad+...
    99+
    2023-07-06
  • win10菜单栏与工具栏颜色和壁纸怎么匹配颜色?
    升级win10后,相信大具栏颜无法改变,所以小编今天为大家带来方便快速修改的经验 第一步,打开菜单设置 第二步,打开里面的个性化 打开颜色 将显示菜单、任务栏和操作中心,设置设定为“开&rdq ...
    99+
    2023-06-17
    win10菜单栏打不开 win10工具栏 win10窗口颜色 win10标题栏颜色 win10 工具栏 壁纸 菜单栏 颜色
  • perl正则表达式匹配的方法怎么用
    在Perl中,正则表达式匹配的方法是使用=~操作符。具体的语法如下: $string =~ /pattern/; 其中,$strin...
    99+
    2023-10-21
    perl
  • 怎么在python中使用pandas进行模糊匹配
    这期内容当中小编将会给大家带来有关怎么在python中使用pandas进行模糊匹配,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。python可以做什么Python是一种编程语言,内置了许多有效的工具,Py...
    99+
    2023-06-07
  • java字符串模糊匹配算法怎么应用
    字符串模糊匹配算法可以应用于各种场景,例如:1. 文本搜索引擎:在搜索引擎中,用户输入的查询字符串通常是模糊的,可以使用字符串模糊匹...
    99+
    2023-09-14
    java
  • 怎么用java正则表达式匹配单词
    使用Java正则表达式匹配单词,可以按照以下步骤进行:1. 创建一个正则表达式模式,用于匹配单词。例如,可以使用 \b\w+\b 来...
    99+
    2023-10-18
    java
  • 模块打包工具webpack怎么使用
    这篇文章主要介绍“模块打包工具webpack怎么使用”,在日常操作中,相信很多人在模块打包工具webpack怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”模块打包工具...
    99+
    2024-04-02
  • 怎么使用PHP中全局正则表达式匹配及匹配数组元素
    这篇文章主要介绍“怎么使用PHP中全局正则表达式匹配及匹配数组元素”,在日常操作中,相信很多人在怎么使用PHP中全局正则表达式匹配及匹配数组元素问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么使用PHP中全...
    99+
    2023-06-25
  • golang工厂模式怎么应用
    Golang的工厂模式可以应用于以下场景: 创建对象时需要根据不同的条件返回不同的具体对象实例。 需要隐藏对象创建的具体过程,只暴...
    99+
    2023-10-23
    golang
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作