精华内容
下载资源
问答
  • 注意: match 和 search 是匹配一次 findall 匹配所有,match 和 search 区别也很大,可以自行网上查找!这里主要需要讨论是其返回值展现方式,即findall函数根据正则表达式不同所返回结果包含不同信息...

    findall 函数:

    在字符串中找到正则表达式所匹配的所有子串,并返回一个列表,如果没有找到匹配的,则返回空列表。

    注意: match 和 search 是匹配一次 findall 匹配所有,match 和 search 的区别也很大,可以自行网上查找!

    这里主要需要讨论的是其返回值的展现方式,即findall函数根据正则表达式的不同所返回的结果包含的不同信息!

    主要包含三种情况:

    1. 当给出的正则表达式中带有多个括号时,列表的元素为多个字符串组成的tuple,tuple中字符串个数与括号对数相同,字符串内容与每个括号内的正则表达式相对应,并且排放顺序是按括号出现的顺序。

    # 例子,正则表达式里分了两个组

    import re

    test = '2018年的下半年,9月份, 27日'

    pattern = re.compile(r'(\d)+(年|月|日)')

    res = pattern.findall(test)

    print(res)

    # 输出结果: [('8', '年'), ('9', '月'), ('7', '日')]

    2. 当给出的正则表达式中带有一个括号时,列表的元素为字符串,此字符串的内容与括号中的正则表达式相对应(不是整个正则表达式的匹配内容)。

    # 例子,正则表达式里有一个分组

    import re

    test = '2018年的下半年,9月份, 27日'

    pattern = re.compile(r'\d+(年|月|日)')

    res = pattern.findall(test)

    print(res)

    # 输出结果: ['年', '月', '日']

    3. 当给出的正则表达式中不带括号时,列表的元素为字符串,此字符串为整个正则表达式匹配的内容。

    # 例子,正则表达式里没有分组

    import re

    test = '2018年的下半年,9月份, 27日'

    pattern = re.compile(r'\d{4}年|\d{1}月|\d{2}日')

    res = pattern.findall(test)

    print(res)

    # 输出结果: ['2018年', '9月', '27日']

    4. 同样是前面的 test 数据,要匹配出和3中同样的结果,可以这样写。

    # 例子,输出和3中同样的结果

    import re

    test = '2018年的下半年,9月份, 27日'

    pattern = re.compile(r'\d{1,4}(?:年|月|日)')

    res = pattern.findall(test)

    print(res)

    # 输出结果: ['2018年', '9月', '27日']

    此例子中的 (?:年|月|日) 不表示一个分组

    以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

    展开全文
  • 167 提取月利润最高三种产品名称 330 168 判断实习员工是否可以继续考察 331 ◎查找与替换函数 334 169 根据产品规格计算产品体积 334 170 通讯录单列转3列 336 171 将15位身份证号码升级为18位 ...
  • 然后,每当执行同一个PreparedStatement对象时,它就会被再解析一次,但不会被再次编译。在缓冲区中可以发现预编译命令,并且可以重新使用。在有大量用户企业级应用软件中,经常会重复执行相同SQL命令,使用...
  •  第2章 与C++第一次亲密接触  2.1 一个C++程序自白  2.1.1 用Visual Studio创建C++程序  2.1.2 以手工方式创建C++程序  2.1.3 C++程序=预编译指令+程序代码+注释  2.1.4 编译器和链接器  2.1.5 C++程序...
  • 11.1.1 MATLAB 图像表达方式 11.1.2 MATLAB 支持图像文件格式 11.1.3 MATLAB 图像类型 11.1.4 MATLAB 图像类型转换 11.1.5 MATLAB 图像数据读/写 11.2 图像显示 11.2.1 标准图像显示技术 11.2.2 ...
  • mysql中统计函数: (1)max:求最大值 求每个部门最高工资: [sql] view plain copy select EMP_NAME,EMP_DEP,max(EMP_SALARY) from EMPLOYEES group by EMP_DEP; (2)min:求最小值 求每个部门最仰...
  • 本书的一个主要目标就是让读者懂得如何将个特定设计任务转换成相应几何结构,并找到个合适数学表达,最后将这个表达转换为算法和程序代码。本书将以循序渐进的方式让读者首先学习到如何编写简单程序来...
  • 使用基于函数的索引提升查询性能 274 SQL优化之Everything is possible(作者:杨廷琨) 281 UNION效率比UNION ALL效率高 282 恒等查询条件对查询的影响 284 两层GROUP BY的效率反而比层GROUP BY高 287 增加...
  • excel使用

    2012-11-25 17:06:01
    合并不同单元格的内容,还有一种方法是利用CONCATENATE函数,此函数的作用是将若干文字串合并到个字串中,具体操作为“=CONCATENATE(B1,C1)”。比如,假设在某河流生态调查工作表中,B2包含“物种”、B3包含...
  • 1.25 函数只定义了一次,调用了一次,但编译器提示非法重声明了。 *1.26 main正确定义是什么?voidmain正确吗? 1.27 我编译器总在报函数原型不匹配错误,可我觉得没什么问题。这是为什么? 1.28 文件中...
  • 1.25 函数只定义了一次,调用了一次,但编译器提示非法重声明了。 43 *1.26 main正确定义是什么?void main正确吗? 44 1.27 我编译器总在报函数原型不匹配错误,可我觉得没什么问题。这是为什么? 44 ...
  • 1.25 函数只定义了一次,调用了一次,但编译器提示非法重声明了。  *1.26 main正确定义是什么?voidmain正确吗?  1.27 我编译器总在报函数原型不匹配错误,可我觉得没什么问题。这是为什么?  1.28 ...
  •  声明问题 1.25 函数只定义了一次,调用了一次,但编译器提示非法重声明了。 *1.26 main正确定义是什么?voidmain正确吗? 1.27 我编译器总在报函数原型不匹配错误,可我觉得没什么问题。这是为什么?...
  • LINGO软件学习

    2009-08-08 22:36:50
    LINGO内置了一种建立最优化模型语言,可以简便地表达大规模问题,利用LINGO高效求解器可快速求解并分析结果。 §1 LINGO快速入门 当你在windows下开始运行LINGO系统时,会得到类似下面的一个窗口: ...
  • 1.25 函数只定义了一次,调用了一次,但编译器提示非法重声明了。 14 *1.26 main正确定义是什么?void main正确吗? 15 1.27 我编译器总在报函数原型不匹配错误,可我觉得没什么问题。这是为什么? 15 ...
  • 《你必须知道495个C语言问题》

    热门讨论 2010-03-20 16:41:18
    1.25 函数只定义了一次,调用了一次,但编译器提示非法重声明了。 14 *1.26 main正确定义是什么?void main正确吗? 15 1.27 我编译器总在报函数原型不匹配错误,可我觉得没什么问题。这是为什么? 15 ...
  • 学习C++是一次探索之旅,因为这种语言容纳了好几编程模式,其中包括面向对象编程、通用编程和 传统过程化编程。随着新特性不断添加,C++一度成为一个活动目标,不过现在有了2003年ISO/ ANSIC++标准第二...
  • 学习C++是一次探索之旅,因为这种语言容纳了好几编程模式,其中包括面向对象编程、通用编程和 传统过程化编程。随着新特性不断添加,C++一度成为一个活动目标,不过现在有了2003年ISO/ ANSIC++标准第二...
  • 学习C++是一次探索之旅,因为这种语言容纳了好几编程模式,其中包括面向对象编程、通用编程和 传统过程化编程。随着新特性不断添加,C++一度成为一个活动目标,不过现在有了2003年ISO/ ANSIC++标准第二...
  • 11.1.1 MATLAB 图像表达方式 11.1.2 MATLAB 支持图像文件格式 11.1.3 MATLAB 图像类型 11.1.4 MATLAB 图像类型转换 11.1.5 MATLAB 图像数据读/写 11.2 图像显示 11.2.1 标准图像显示技术 11.2.2 ...
  • 随着博客人数增加, Blog 作为一种生活方式、新工作方式、新学习方式已经被越来越多人所接受,并且在改变传统网络和社会结构:网络信息不再是虚假不可验证,交流和沟通更有明确选择和方向性,单一...
  • 8.14 一种循环、面向连接服务器算法 78 8.15 用INADDR_ANY绑定熟知端口 78 8.16 将套接字置于被动模式 78 8.17 接受连接并使用这些连接 79 8.18 循环、无连接服务器算法 79 8.19 在无连接服务器...
  • 【Java 8】Lambda表达式

    2020-12-13 23:29:11
    Lambda表达式前言、Lambda介绍组成基本语法二、Lambda使用场景、...可以理解为简洁地表示可传递的 匿名函数的一种方式:它没有名称,但它有参数列表 、函数主体、返回类型,可能还有个可抛出的异常列表。 匿名—


    前言

    作为匿名参数,Lambda 给我们带来了简洁、直观的函数表达,便于后期维护与二次开发。有关 Lambda 表达式的一切内容,将在本文呈现。


    提示:以下是本篇文章正文内容,下面案例可供参考

    一、Lambda介绍

    可以理解为简洁地表示可传递的 匿名函数的一种方式:它没有名称,但它有参数列表 、函数主体、返回类型,可能还有一个可抛出的异常列表。

    • 匿名——不需要函数名称
    • 函数——和普通函数一样,Lambda有参数列表、函数主体、返回类型,还可能有可抛出的异常列表
    • 传递——Lambda表达式可作为参数传递给方法或存储在变量中
    • 简洁——无需像匿名类写很多模板代码

    组成

    1. 参数列表
    2. 箭头:分隔参数列表与Lambda主体
    3. Lambda主体

    基本语法

    (parameters) -> expression
    (parameters) -> { statements; }
    

    二、Lambda使用场景

    1. 函数式接口:只定义一个抽象方法的接口。
      注意:接口可以拥有默认方法,哪怕有很多默认方法 ,只要接口只定义了一个抽象方法,它就仍然是一个函数式接口
    2. 函数描述符:函数式接口的抽象方法的签名与Lambda函数的签名一致,将这种抽象方法叫做函数描述符
      补充:方法的名字和參数列表成为方法的签名

    三、环绕执行模式

    环绕执行模式:初始化/准备代码 --> 任务 A/B --> 清理/结束代码

    1. 记得行为参数化
    String result  = processFile((BufferedReader br) -> br.readLine() + br.readLine());
    
    1. 使用函数式接口来传递行为
    @FunctionalInterface
    public interface BufferedReaderProcessor {
        String process(BufferedReader b) throws IOException;
    }
    // 现在可以用这个接口作为新的 processFile 方法的参数
    public static String processFile(BufferedReaderProcessor p) throws IOException {
        ...
    }
    
    1. 执行一个行为
    public static String processFile(BufferedReaderProcessor p) throws IOException {
        try (BufferedReader br = new BufferedReader(new FileReader("data.txt"))) {
            // 处理 BufferedReader 对象
            return p.process(br);
        }
    }
    
    1. 传递Lambda
    String oneLine = processFile((BufferedReader br) -> br.readLine());
    String twoLine = processFile((BufferedReader br) -> br.readLine() + br.readLine());
    

    四、原始类型特化

    原始类型特化

    Java类型

    • 引用类型(Byte、Integer、Object、List)
    • 原始类型(int、double、byte、char)

    泛型(比如Consumer中的T)只能绑定引用类型,Java提供一套原始类型与引用类型转化的机制

    • 装箱:原始类型 --> 引用类型,本质上把原始类型包裹起来,并保存在堆里,需要更多内存,需要额外的内存搜索来获取被包装的原始值
    • 拆箱:引用类型 --> 原始类型

    原始类型特化避免了上述的装箱操作

    函数式接口 函数描述符 原始类型特化
    Predicate T -> boolean IntPredicate, LongPredicate, DoublePredicate
    Cosumer T->void IntConsumer, LongConsumer, DoubleConsumer
    Function<T, R> T -> R IntFunction, IntToDoubleFunction, IntToLongFunction, LongFunction, LongToDoubleFunction, LongToIntFunction, DoubleFunction, ToIntFunction, ToDoubleFunction, ToLongFunction
    Supplier () -> T BooleanSupplier, IntSupplier, LongSupplier, DoubleSupplier
    UnaryOperator T -> T IntUnaryOperator, LongUnaryOperator, DoubleUnaryOperator
    BinaryOperator (T, T) -> T IntBinaryOperator, LongBinaryOperator, DoubleBinaryOperator
    BiPredicate<L, R> (L, R) -> boolean
    BiConsumer<T, U> (T, U) -> void ObjIntConsumer, ObjLongConsumer, ObjDoubleConsumer
    BiFunction<T, U, R> (T, U) -> R ToIntBiFunction<T, U>, ToLongBiFunction<T, U>, ToDoubleBiFunction<T, U>

    五、方法引用

    基本思想:如果一个Lambda代表的只是“直接调用这个方法”,最好用名称来调用,而不是去描述如何调用它。

    Lambda 等效的方法引用
    (Apple a) -> a.getWeight() Apple::getWeight
    ()->Thread.currentThread().dumpStack() Thread.currentThread()::dumpStack
    (str, i) -> str.substring(i) String::substring
    (String s) -> System.out.println(s) System.out::println

    分类

    1. 指向静态方法的方法引用:例如 Integer 的 parseInt 方法,Integer::parseInt
    2. 指向任意类型实例方法的方法引用:例如 String 的 length 方法,String::length
    3. 指向现有对象的实例方法的方法引用:假设有一个局部变量 expensiveTransaction 用于存放 Transaction 类型的对象,它支持实例方法 getValue,可以写 expensiveTransaction::getValue

    构造函数引用

    Supplier<Apple> c1 = Apple::new;
    Apple a1 = c1.get();
    // 构造函数签名是 Apple(Integer, weight)
    Function<Integer, Apple> c2 = Apple::new;
    Apple a2 = c2.apply(110);
    

    总结

    以上就是 Lambda 表达式的内容,本文介绍了Lambda表达式的组成、基本语法以及使用场景,又梳理了与 Lambda 表达式相关的环绕执行模式、原始类型特化以及方法引用。


    @北京·海淀 2020.12.13

    展开全文
  • 当客户机第一次调用一个Stateful Session Bean 时,容器必须立即在服务器中创建一个新Bean实例,并关联到客户机上,以后此客户机调用Stateful Session Bean 方法时容器会把调用分派到与此客户机相关联Bean实例...
  • B2.7 如果个函数是两个其他函数的卷积,它的DFT 与另两个函数的DFT 是什么关系? 79 2.3.7 如何显示幅图像的离散傅里叶变换? 83 2.3.8 当图像旋转后其离散傅里叶变换将会怎么样? 84 2.3.9 当图像平移后其...
  • php高级开发教程说明

    2008-11-27 11:39:22
    可能是在一个完全不同项目中—你可能会再一次需要一类似工具,仅仅一遍又一遍地 重做目录列举器,每一个对应一个特定任务,这简直是在浪费时间。因此,当首次遇到这种 情况时,应该考虑到这一点,应从一个...
  • 主流深度学习框架中主要有**三种自动微分技术,才用不是静态计算图、动态计算图,而是基于**源码**转换:该技术源以**函数式编程框架**为基础,以**即时编译(JIT)**的方式**在中间表达(编译过程中程序的表达...
  • 他是几本书作者,这包括Professional SQL Server 2005 XML(Wrox,2006)和Professional LINQ(Wrox,2008),他还为SQL PASS Community Connector写每两周一次的特辑文章。他也为好几个网站供稿,这包括Wrox...

空空如也

空空如也

1 2 3 4 5
收藏数 81
精华内容 32
关键字:

一次函数的三种表达方式