 FPGA助力Python加速计算 陈志勇FPGA 助力 Python 加速计算 陈志勇 高级技术市场经理 安富利电子科技 2019年10月19日,北京 2 ➢ Python 语言:易学易读易用、可扩展性、可移植性等。 ➢ Python 开发工具:库丰富、效率高、调试方便 ➢ Python 的应用: 人工智能、数据分析等 ➢ Python 的生态环境:软件平台、硬件平台、方案合作伙伴等 ➢ 用 Python 如何开发嵌入式产品?如何实现 工程师开发嵌入式产品的时候哪些地方可能会遇到性能瓶颈? ➢ 传统的计算平台:基于通用处理器的架构,Intel x86 ➢ 新的嵌入式计算平台:MCU,DSP,FPGA,GPU、ASSP等 ➢ 嵌入式计算: ➢ 嵌入式系统是以应用为中心,以计算机技术为基础,软硬件可裁剪,适用于应用系统对功能、可靠 性、成本、体积、功耗有严格要求的专用计算机系统,它一般由嵌入式微处理器、外围硬件设备、 嵌入 式操作系统以及用户的应用程序等四个部分组成。 式操作系统以及用户的应用程序等四个部分组成。 ➢ 嵌入式系统促使计算机的形态和性能更加小型化,多功能,低功耗. ➢ 加速计算: ➢ 如何提高计算效率,提高计算性能 ➢ 加速计算框架的考虑 ➢ 加速计算平台的考虑 ➢ FPGA 是如何作为加速平台的?在边缘和云端 Python 与嵌入式计算 4 ➢ FPGA(Field Programmable Gate Array)是在PAL、GAL等可编程器件的基础上进一步发展的0 码力 | 34 页 | 4.19 MB | 1 年前3 FPGA助力Python加速计算 陈志勇FPGA 助力 Python 加速计算 陈志勇 高级技术市场经理 安富利电子科技 2019年10月19日,北京 2 ➢ Python 语言:易学易读易用、可扩展性、可移植性等。 ➢ Python 开发工具:库丰富、效率高、调试方便 ➢ Python 的应用: 人工智能、数据分析等 ➢ Python 的生态环境:软件平台、硬件平台、方案合作伙伴等 ➢ 用 Python 如何开发嵌入式产品?如何实现 工程师开发嵌入式产品的时候哪些地方可能会遇到性能瓶颈? ➢ 传统的计算平台:基于通用处理器的架构,Intel x86 ➢ 新的嵌入式计算平台:MCU,DSP,FPGA,GPU、ASSP等 ➢ 嵌入式计算: ➢ 嵌入式系统是以应用为中心,以计算机技术为基础,软硬件可裁剪,适用于应用系统对功能、可靠 性、成本、体积、功耗有严格要求的专用计算机系统,它一般由嵌入式微处理器、外围硬件设备、 嵌入 式操作系统以及用户的应用程序等四个部分组成。 式操作系统以及用户的应用程序等四个部分组成。 ➢ 嵌入式系统促使计算机的形态和性能更加小型化,多功能,低功耗. ➢ 加速计算: ➢ 如何提高计算效率,提高计算性能 ➢ 加速计算框架的考虑 ➢ 加速计算平台的考虑 ➢ FPGA 是如何作为加速平台的?在边缘和云端 Python 与嵌入式计算 4 ➢ FPGA(Field Programmable Gate Array)是在PAL、GAL等可编程器件的基础上进一步发展的0 码力 | 34 页 | 4.19 MB | 1 年前3
 07 FPGA 助力Python加速计算 陈志勇FPGA 助力 Python 加速计算 陈志勇 高级技术市场经理 安富利电子科技 2019年10月20日,深圳 2 Ø Python 语言:易学易读易用、可扩展性、可移植性等。 Ø Python 开发工具:库丰富、效率高、调试方便 Ø Python 的应用: 人工智能、数据分析等 Ø Python 的生态环境:软件平台、硬件平台、方案合作伙伴 等 Ø 用 Python 如何开发嵌入式产品?如何实现 工程师开发嵌入式产品的时候哪些地方可能会遇到性能瓶颈? Ø 传统的计算平台:基于通用处理器的架构,Intel x86 Ø 新的嵌入式计算平台:MCU,DSP,FPGA,GPU、ASSP等 Ø 嵌入式计算: Ø 嵌入式系统是以应用为中心,以计算机技术为基础,软硬件可裁剪,适用于应用系统对功能、可靠 性、成本、体积、功耗有严格要求的专用计算机系统,它一般由嵌入式微处理器、外围硬件设备、 嵌入 式操作系统以及用户的应用程序等四个部分组成。 式操作系统以及用户的应用程序等四个部分组成。 Ø 嵌入式系统促使计算机的形态和性能更加小型化,多功能,低功耗. Ø 加速计算: Ø 如何提高计算效率,提高计算性能 Ø 加速计算框架的考虑 Ø 加速计算平台的考虑 Ø FPGA 是如何作为加速平台的?在边缘和云端 Python 与嵌入式计算 4 Ø FPGA(Field Programmable Gate Array)是在PAL、GAL等可编程器件的基础上进一步发展的0 码力 | 34 页 | 6.89 MB | 1 年前3 07 FPGA 助力Python加速计算 陈志勇FPGA 助力 Python 加速计算 陈志勇 高级技术市场经理 安富利电子科技 2019年10月20日,深圳 2 Ø Python 语言:易学易读易用、可扩展性、可移植性等。 Ø Python 开发工具:库丰富、效率高、调试方便 Ø Python 的应用: 人工智能、数据分析等 Ø Python 的生态环境:软件平台、硬件平台、方案合作伙伴 等 Ø 用 Python 如何开发嵌入式产品?如何实现 工程师开发嵌入式产品的时候哪些地方可能会遇到性能瓶颈? Ø 传统的计算平台:基于通用处理器的架构,Intel x86 Ø 新的嵌入式计算平台:MCU,DSP,FPGA,GPU、ASSP等 Ø 嵌入式计算: Ø 嵌入式系统是以应用为中心,以计算机技术为基础,软硬件可裁剪,适用于应用系统对功能、可靠 性、成本、体积、功耗有严格要求的专用计算机系统,它一般由嵌入式微处理器、外围硬件设备、 嵌入 式操作系统以及用户的应用程序等四个部分组成。 式操作系统以及用户的应用程序等四个部分组成。 Ø 嵌入式系统促使计算机的形态和性能更加小型化,多功能,低功耗. Ø 加速计算: Ø 如何提高计算效率,提高计算性能 Ø 加速计算框架的考虑 Ø 加速计算平台的考虑 Ø FPGA 是如何作为加速平台的?在边缘和云端 Python 与嵌入式计算 4 Ø FPGA(Field Programmable Gate Array)是在PAL、GAL等可编程器件的基础上进一步发展的0 码力 | 34 页 | 6.89 MB | 1 年前3
 2_FPGA助力Python加速计算_陈志勇FPGA 助力 Python 加速计算 陈志勇 高级技术市场经理 安富利电子科技 2019年9月21日, 上海 2 Ø Python 语言:易学易读易用、可扩展性、可移植性等。 Ø Python 开发工具:库丰富、效率高、调试方便 Ø Python 的应用: 人工智能、数据分析等 Ø Python 的生态环境:软件平台、硬件平台、方案合作伙伴等 Ø 用 Python 如何开发嵌入式产品?如何实现 工程师开发嵌入式产品的时候哪些地方可能会遇到性能瓶颈? Ø 传统的计算平台:基于通用处理器的架构,Intel x86 Ø 新的嵌入式计算平台:MCU,DSP,FPGA,GPU、ASSP等 Ø 嵌入式计算: Ø 嵌入式系统是以应用为中心,以计算机技术为基础,软硬件可裁剪,适用于应用系统对功能、可靠 性、成本、体积、功耗有严格要求的专用计算机系统,它一般由嵌入式微处理器、外围硬件设备、 嵌入 式操作系统以及用户的应用程序等四个部分组成。 式操作系统以及用户的应用程序等四个部分组成。 Ø 嵌入式系统促使计算机的形态和性能更加小型化,多功能,低功耗. Ø 加速计算: Ø 如何提高计算效率,提高计算性能 Ø 加速计算框架的考虑 Ø 加速计算平台的考虑 Ø FPGA 是如何作为加速平台的?在边缘和云端 Python 与嵌入式计算 4 Ø FPGA(Field Programmable Gate Array)是在PAL、GAL等可编程器件的基础上进一步发展的0 码力 | 33 页 | 8.99 MB | 1 年前3 2_FPGA助力Python加速计算_陈志勇FPGA 助力 Python 加速计算 陈志勇 高级技术市场经理 安富利电子科技 2019年9月21日, 上海 2 Ø Python 语言:易学易读易用、可扩展性、可移植性等。 Ø Python 开发工具:库丰富、效率高、调试方便 Ø Python 的应用: 人工智能、数据分析等 Ø Python 的生态环境:软件平台、硬件平台、方案合作伙伴等 Ø 用 Python 如何开发嵌入式产品?如何实现 工程师开发嵌入式产品的时候哪些地方可能会遇到性能瓶颈? Ø 传统的计算平台:基于通用处理器的架构,Intel x86 Ø 新的嵌入式计算平台:MCU,DSP,FPGA,GPU、ASSP等 Ø 嵌入式计算: Ø 嵌入式系统是以应用为中心,以计算机技术为基础,软硬件可裁剪,适用于应用系统对功能、可靠 性、成本、体积、功耗有严格要求的专用计算机系统,它一般由嵌入式微处理器、外围硬件设备、 嵌入 式操作系统以及用户的应用程序等四个部分组成。 式操作系统以及用户的应用程序等四个部分组成。 Ø 嵌入式系统促使计算机的形态和性能更加小型化,多功能,低功耗. Ø 加速计算: Ø 如何提高计算效率,提高计算性能 Ø 加速计算框架的考虑 Ø 加速计算平台的考虑 Ø FPGA 是如何作为加速平台的?在边缘和云端 Python 与嵌入式计算 4 Ø FPGA(Field Programmable Gate Array)是在PAL、GAL等可编程器件的基础上进一步发展的0 码力 | 33 页 | 8.99 MB | 1 年前3
 Python 3.10.15 正则表达式 HOWTO 。你还可以用正则来修改字符 串,或以各种方式将其拆分。 正则表达式会被编译成一系列字节码,然后由 C 语言编写的匹配引擎执行。对于高级用途,可能有必要特别 注意引擎将如何执行一个给定的正则,并以某种方式写入正则,以生成运行更快的字节码。本文不涉及优化 问题,因为这要求你对正则引擎的匹配过程有很好的了解。 正则表达式语言相对较小且受限,因此并非所有可能的字符串处理任务都可以使用正则表达式完成。有些任 代码会比精心设计的正则表达式慢,但它可能更容易理解。 2 简单正则 让我们从最简单的正则表达式开始吧。由于正则表达式是用来操作字符串的,我们将从最常见的任务开始: 匹配字符。 关于正则表达式背后的计算机科学的详细解释(确定性和非确定性有限自动机),你可以参考几乎所有关于 编写编译器的教科书。 2.1 匹配字符 大多数字母和符号都会简单地匹配自身。例如,正则表达式 test 将会精确地匹配到 test 将匹配 'ct' (0 个 'a' )、'cat' (1 个 'a' )、'caaat' (3 个 'a' )等等。 类似 * 这样的重复是 贪婪的。当重复正则时,匹配引擎将尝试重复尽可能多的次数。如果表达式的后续部 分不匹配,则匹配引擎将回退并以较少的重复次数再次尝试。 通过一个逐步示例更容易理解这一点。让我们分析一下表达式 a[bcd]*b 。该表达式首先匹配一个字母 'a' ,接着匹配字符类 [bcd]0 码力 | 18 页 | 391.85 KB | 11 月前3 Python 3.10.15 正则表达式 HOWTO 。你还可以用正则来修改字符 串,或以各种方式将其拆分。 正则表达式会被编译成一系列字节码,然后由 C 语言编写的匹配引擎执行。对于高级用途,可能有必要特别 注意引擎将如何执行一个给定的正则,并以某种方式写入正则,以生成运行更快的字节码。本文不涉及优化 问题,因为这要求你对正则引擎的匹配过程有很好的了解。 正则表达式语言相对较小且受限,因此并非所有可能的字符串处理任务都可以使用正则表达式完成。有些任 代码会比精心设计的正则表达式慢,但它可能更容易理解。 2 简单正则 让我们从最简单的正则表达式开始吧。由于正则表达式是用来操作字符串的,我们将从最常见的任务开始: 匹配字符。 关于正则表达式背后的计算机科学的详细解释(确定性和非确定性有限自动机),你可以参考几乎所有关于 编写编译器的教科书。 2.1 匹配字符 大多数字母和符号都会简单地匹配自身。例如,正则表达式 test 将会精确地匹配到 test 将匹配 'ct' (0 个 'a' )、'cat' (1 个 'a' )、'caaat' (3 个 'a' )等等。 类似 * 这样的重复是 贪婪的。当重复正则时,匹配引擎将尝试重复尽可能多的次数。如果表达式的后续部 分不匹配,则匹配引擎将回退并以较少的重复次数再次尝试。 通过一个逐步示例更容易理解这一点。让我们分析一下表达式 a[bcd]*b 。该表达式首先匹配一个字母 'a' ,接着匹配字符类 [bcd]0 码力 | 18 页 | 391.85 KB | 11 月前3
 Python 3.8.20 正则表达式 HOWTO 。你还可以用 正则来修改字符串,或以各种方式将其拆分。 正则表达式会被编译成一系列字节码,然后由 C 语言编写的匹配引擎执行。对于高级用途,可能有必要 特别注意引擎将如何执行一个给定的正则,并以某种方式写入正则,以生成运行更快的字节码。本文不 涉及优化问题,因为这要求你对正则引擎的匹配过程有很好的了解。 正则表达式语言相对较小且受限,因此并非所有可能的字符串处理任务都可以使用正则表达式完成。有 代码会比精心设计的正则表达式慢,但它可能更容易理解。 2 简单正则 让我们从最简单的正则表达式开始吧。由于正则表达式是用来操作字符串的,我们将从最常见的任务开 始:匹配字符。 关于正则表达式背后的计算机科学的详细解释(确定性和非确定性有限自动机),你可以参考几乎所有关 于编写编译器的教科书。 2.1 匹配字符 大多数字母和符号都会简单地匹配自身。例如,正则表达式 test 将会精确地匹配到 test 将匹配 'ct' (0 个 'a' )、'cat' (1 个 'a' )、'caaat' (3 个 'a' )等等。 类似 * 这样的重复是 贪婪的。当重复正则时,匹配引擎将尝试重复尽可能多的次数。如果表达式的后续 部分不匹配,则匹配引擎将回退并以较少的重复次数再次尝试。 通过一个逐步示例更容易理解这一点。让我们分析一下表达式 a[bcd]*b 。该表达式首先匹配一个字母 'a' ,接着匹配字符类 [bcd]0 码力 | 17 页 | 393.47 KB | 11 月前3 Python 3.8.20 正则表达式 HOWTO 。你还可以用 正则来修改字符串,或以各种方式将其拆分。 正则表达式会被编译成一系列字节码,然后由 C 语言编写的匹配引擎执行。对于高级用途,可能有必要 特别注意引擎将如何执行一个给定的正则,并以某种方式写入正则,以生成运行更快的字节码。本文不 涉及优化问题,因为这要求你对正则引擎的匹配过程有很好的了解。 正则表达式语言相对较小且受限,因此并非所有可能的字符串处理任务都可以使用正则表达式完成。有 代码会比精心设计的正则表达式慢,但它可能更容易理解。 2 简单正则 让我们从最简单的正则表达式开始吧。由于正则表达式是用来操作字符串的,我们将从最常见的任务开 始:匹配字符。 关于正则表达式背后的计算机科学的详细解释(确定性和非确定性有限自动机),你可以参考几乎所有关 于编写编译器的教科书。 2.1 匹配字符 大多数字母和符号都会简单地匹配自身。例如,正则表达式 test 将会精确地匹配到 test 将匹配 'ct' (0 个 'a' )、'cat' (1 个 'a' )、'caaat' (3 个 'a' )等等。 类似 * 这样的重复是 贪婪的。当重复正则时,匹配引擎将尝试重复尽可能多的次数。如果表达式的后续 部分不匹配,则匹配引擎将回退并以较少的重复次数再次尝试。 通过一个逐步示例更容易理解这一点。让我们分析一下表达式 a[bcd]*b 。该表达式首先匹配一个字母 'a' ,接着匹配字符类 [bcd]0 码力 | 17 页 | 393.47 KB | 11 月前3
 Python 3.8.20 正则表达式 HOWTO 。你还可以用 正则来修改字符串,或以各种方式将其拆分。 正则表达式会被编译成一系列字节码,然后由 C 语言编写的匹配引擎执行。对于高级用途,可能有必要 特别注意引擎将如何执行一个给定的正则,并以某种方式写入正则,以生成运行更快的字节码。本文不 涉及优化问题,因为这要求你对正则引擎的匹配过程有很好的了解。 正则表达式语言相对较小且受限,因此并非所有可能的字符串处理任务都可以使用正则表达式完成。有 代码会比精心设计的正则表达式慢,但它可能更容易理解。 2 简单正则 让我们从最简单的正则表达式开始吧。由于正则表达式是用来操作字符串的,我们将从最常见的任务开 始:匹配字符。 关于正则表达式背后的计算机科学的详细解释(确定性和非确定性有限自动机),你可以参考几乎所有关 于编写编译器的教科书。 2.1 匹配字符 大多数字母和符号都会简单地匹配自身。例如,正则表达式 test 将会精确地匹配到 test 将匹配 'ct' (0 个 'a' )、'cat' (1 个 'a' )、'caaat' (3 个 'a' )等等。 类似 * 这样的重复是 贪婪的。当重复正则时,匹配引擎将尝试重复尽可能多的次数。如果表达式的后续 部分不匹配,则匹配引擎将回退并以较少的重复次数再次尝试。 通过一个逐步示例更容易理解这一点。让我们分析一下表达式 a[bcd]*b 。该表达式首先匹配一个字母 'a' ,接着匹配字符类 [bcd]0 码力 | 17 页 | 393.47 KB | 11 月前3 Python 3.8.20 正则表达式 HOWTO 。你还可以用 正则来修改字符串,或以各种方式将其拆分。 正则表达式会被编译成一系列字节码,然后由 C 语言编写的匹配引擎执行。对于高级用途,可能有必要 特别注意引擎将如何执行一个给定的正则,并以某种方式写入正则,以生成运行更快的字节码。本文不 涉及优化问题,因为这要求你对正则引擎的匹配过程有很好的了解。 正则表达式语言相对较小且受限,因此并非所有可能的字符串处理任务都可以使用正则表达式完成。有 代码会比精心设计的正则表达式慢,但它可能更容易理解。 2 简单正则 让我们从最简单的正则表达式开始吧。由于正则表达式是用来操作字符串的,我们将从最常见的任务开 始:匹配字符。 关于正则表达式背后的计算机科学的详细解释(确定性和非确定性有限自动机),你可以参考几乎所有关 于编写编译器的教科书。 2.1 匹配字符 大多数字母和符号都会简单地匹配自身。例如,正则表达式 test 将会精确地匹配到 test 将匹配 'ct' (0 个 'a' )、'cat' (1 个 'a' )、'caaat' (3 个 'a' )等等。 类似 * 这样的重复是 贪婪的。当重复正则时,匹配引擎将尝试重复尽可能多的次数。如果表达式的后续 部分不匹配,则匹配引擎将回退并以较少的重复次数再次尝试。 通过一个逐步示例更容易理解这一点。让我们分析一下表达式 a[bcd]*b 。该表达式首先匹配一个字母 'a' ,接着匹配字符类 [bcd]0 码力 | 17 页 | 393.47 KB | 11 月前3
 Python 3.10.15 正则表达式 HOWTO 。你还可以用 正则来修改字符串,或以各种方式将其拆分。 正则表达式会被编译成一系列字节码,然后由 C 语言编写的匹配引擎执行。对于高级用途,可能有必要 特别注意引擎将如何执行一个给定的正则,并以某种方式写入正则,以生成运行更快的字节码。本文不 涉及优化问题,因为这要求你对正则引擎的匹配过程有很好的了解。 正则表达式语言相对较小且受限,因此并非所有可能的字符串处理任务都可以使用正则表达式完成。有 代码会比精心设计的正则表达式慢,但它可能更容易理解。 2 简单正则 让我们从最简单的正则表达式开始吧。由于正则表达式是用来操作字符串的,我们将从最常见的任务开 始:匹配字符。 关于正则表达式背后的计算机科学的详细解释(确定性和非确定性有限自动机),你可以参考几乎所有关 于编写编译器的教科书。 2.1 匹配字符 大多数字母和符号都会简单地匹配自身。例如,正则表达式 test 将会精确地匹配到 test 将匹配 'ct' (0 个 'a' )、'cat' (1 个 'a' )、'caaat' (3 个 'a' )等等。 类似 * 这样的重复是 贪婪的。当重复正则时,匹配引擎将尝试重复尽可能多的次数。如果表达式的后续 部分不匹配,则匹配引擎将回退并以较少的重复次数再次尝试。 通过一个逐步示例更容易理解这一点。让我们分析一下表达式 a[bcd]*b 。该表达式首先匹配一个字母 'a' ,接着匹配字符类 [bcd]0 码力 | 17 页 | 393.01 KB | 11 月前3 Python 3.10.15 正则表达式 HOWTO 。你还可以用 正则来修改字符串,或以各种方式将其拆分。 正则表达式会被编译成一系列字节码,然后由 C 语言编写的匹配引擎执行。对于高级用途,可能有必要 特别注意引擎将如何执行一个给定的正则,并以某种方式写入正则,以生成运行更快的字节码。本文不 涉及优化问题,因为这要求你对正则引擎的匹配过程有很好的了解。 正则表达式语言相对较小且受限,因此并非所有可能的字符串处理任务都可以使用正则表达式完成。有 代码会比精心设计的正则表达式慢,但它可能更容易理解。 2 简单正则 让我们从最简单的正则表达式开始吧。由于正则表达式是用来操作字符串的,我们将从最常见的任务开 始:匹配字符。 关于正则表达式背后的计算机科学的详细解释(确定性和非确定性有限自动机),你可以参考几乎所有关 于编写编译器的教科书。 2.1 匹配字符 大多数字母和符号都会简单地匹配自身。例如,正则表达式 test 将会精确地匹配到 test 将匹配 'ct' (0 个 'a' )、'cat' (1 个 'a' )、'caaat' (3 个 'a' )等等。 类似 * 这样的重复是 贪婪的。当重复正则时,匹配引擎将尝试重复尽可能多的次数。如果表达式的后续 部分不匹配,则匹配引擎将回退并以较少的重复次数再次尝试。 通过一个逐步示例更容易理解这一点。让我们分析一下表达式 a[bcd]*b 。该表达式首先匹配一个字母 'a' ,接着匹配字符类 [bcd]0 码力 | 17 页 | 393.01 KB | 11 月前3
 Python 3.8.20 正则表达式 HOWTO 。你还可以用正则来修改字符 串,或以各种方式将其拆分。 正则表达式会被编译成一系列字节码,然后由 C 语言编写的匹配引擎执行。对于高级用途,可能有必要特别 注意引擎将如何执行一个给定的正则,并以某种方式写入正则,以生成运行更快的字节码。本文不涉及优化 问题,因为这要求你对正则引擎的匹配过程有很好的了解。 正则表达式语言相对较小且受限,因此并非所有可能的字符串处理任务都可以使用正则表达式完成。有些任 代码会比精心设计的正则表达式慢,但它可能更容易理解。 2 简单正则 让我们从最简单的正则表达式开始吧。由于正则表达式是用来操作字符串的,我们将从最常见的任务开始: 匹配字符。 关于正则表达式背后的计算机科学的详细解释(确定性和非确定性有限自动机),你可以参考几乎所有关于 编写编译器的教科书。 2.1 匹配字符 大多数字母和符号都会简单地匹配自身。例如,正则表达式 test 将会精确地匹配到 test 将匹配 'ct' (0 个 'a' )、'cat' (1 个 'a' )、'caaat' (3 个 'a' )等等。 类似 * 这样的重复是 贪婪的。当重复正则时,匹配引擎将尝试重复尽可能多的次数。如果表达式的后续部 分不匹配,则匹配引擎将回退并以较少的重复次数再次尝试。 通过一个逐步示例更容易理解这一点。让我们分析一下表达式 a[bcd]*b 。该表达式首先匹配一个字母 'a' ,接着匹配字符类 [bcd]0 码力 | 18 页 | 392.29 KB | 11 月前3 Python 3.8.20 正则表达式 HOWTO 。你还可以用正则来修改字符 串,或以各种方式将其拆分。 正则表达式会被编译成一系列字节码,然后由 C 语言编写的匹配引擎执行。对于高级用途,可能有必要特别 注意引擎将如何执行一个给定的正则,并以某种方式写入正则,以生成运行更快的字节码。本文不涉及优化 问题,因为这要求你对正则引擎的匹配过程有很好的了解。 正则表达式语言相对较小且受限,因此并非所有可能的字符串处理任务都可以使用正则表达式完成。有些任 代码会比精心设计的正则表达式慢,但它可能更容易理解。 2 简单正则 让我们从最简单的正则表达式开始吧。由于正则表达式是用来操作字符串的,我们将从最常见的任务开始: 匹配字符。 关于正则表达式背后的计算机科学的详细解释(确定性和非确定性有限自动机),你可以参考几乎所有关于 编写编译器的教科书。 2.1 匹配字符 大多数字母和符号都会简单地匹配自身。例如,正则表达式 test 将会精确地匹配到 test 将匹配 'ct' (0 个 'a' )、'cat' (1 个 'a' )、'caaat' (3 个 'a' )等等。 类似 * 这样的重复是 贪婪的。当重复正则时,匹配引擎将尝试重复尽可能多的次数。如果表达式的后续部 分不匹配,则匹配引擎将回退并以较少的重复次数再次尝试。 通过一个逐步示例更容易理解这一点。让我们分析一下表达式 a[bcd]*b 。该表达式首先匹配一个字母 'a' ,接着匹配字符类 [bcd]0 码力 | 18 页 | 392.29 KB | 11 月前3
 Python 3.12 正则表达式 HOWTO 。你还可以用 正则来修改字符串,或以各种方式将其拆分。 正则表达式会被编译成一系列字节码,然后由 C 语言编写的匹配引擎执行。对于高级用途,可能有必要 特别注意引擎将如何执行一个给定的正则,并以某种方式写入正则,以生成运行更快的字节码。本文不 涉及优化问题,因为这要求你对正则引擎的匹配过程有很好的了解。 正则表达式语言相对较小且受限,因此并非所有可能的字符串处理任务都可以使用正则表达式完成。有 代码会比精心设计的正则表达式慢,但它可能更容易理解。 2 简单正则 让我们从最简单的正则表达式开始吧。由于正则表达式是用来操作字符串的,我们将从最常见的任务开 始:匹配字符。 关于正则表达式背后的计算机科学的详细解释(确定性和非确定性有限自动机),你可以参考几乎所有关 于编写编译器的教科书。 2.1 匹配字符 大多数字母和符号都会简单地匹配自身。例如,正则表达式 test 将会精确地匹配到 test 将匹配 'ct' (0 个 'a' )、'cat' (1 个 'a' )、'caaat' (3 个 'a' )等等。 类似 * 这样的重复是 贪婪的。当重复正则时,匹配引擎将尝试重复尽可能多的次数。如果表达式的后续 部分不匹配,则匹配引擎将回退并以较少的重复次数再次尝试。 通过一个逐步示例更容易理解这一点。让我们分析一下表达式 a[bcd]*b 。该表达式首先匹配一个字母 'a' ,接着匹配字符类 [bcd]0 码力 | 17 页 | 404.43 KB | 11 月前3 Python 3.12 正则表达式 HOWTO 。你还可以用 正则来修改字符串,或以各种方式将其拆分。 正则表达式会被编译成一系列字节码,然后由 C 语言编写的匹配引擎执行。对于高级用途,可能有必要 特别注意引擎将如何执行一个给定的正则,并以某种方式写入正则,以生成运行更快的字节码。本文不 涉及优化问题,因为这要求你对正则引擎的匹配过程有很好的了解。 正则表达式语言相对较小且受限,因此并非所有可能的字符串处理任务都可以使用正则表达式完成。有 代码会比精心设计的正则表达式慢,但它可能更容易理解。 2 简单正则 让我们从最简单的正则表达式开始吧。由于正则表达式是用来操作字符串的,我们将从最常见的任务开 始:匹配字符。 关于正则表达式背后的计算机科学的详细解释(确定性和非确定性有限自动机),你可以参考几乎所有关 于编写编译器的教科书。 2.1 匹配字符 大多数字母和符号都会简单地匹配自身。例如,正则表达式 test 将会精确地匹配到 test 将匹配 'ct' (0 个 'a' )、'cat' (1 个 'a' )、'caaat' (3 个 'a' )等等。 类似 * 这样的重复是 贪婪的。当重复正则时,匹配引擎将尝试重复尽可能多的次数。如果表达式的后续 部分不匹配,则匹配引擎将回退并以较少的重复次数再次尝试。 通过一个逐步示例更容易理解这一点。让我们分析一下表达式 a[bcd]*b 。该表达式首先匹配一个字母 'a' ,接着匹配字符类 [bcd]0 码力 | 17 页 | 404.43 KB | 11 月前3
 Python 3.12 正则表达式 HOWTO 。你还可以用 正则来修改字符串,或以各种方式将其拆分。 正则表达式会被编译成一系列字节码,然后由 C 语言编写的匹配引擎执行。对于高级用途,可能有必要 特别注意引擎将如何执行一个给定的正则,并以某种方式写入正则,以生成运行更快的字节码。本文不 涉及优化问题,因为这要求你对正则引擎的匹配过程有很好的了解。 正则表达式语言相对较小且受限,因此并非所有可能的字符串处理任务都可以使用正则表达式完成。有 代码会比精心设计的正则表达式慢,但它可能更容易理解。 2 简单正则 让我们从最简单的正则表达式开始吧。由于正则表达式是用来操作字符串的,我们将从最常见的任务开 始:匹配字符。 关于正则表达式背后的计算机科学的详细解释(确定性和非确定性有限自动机),你可以参考几乎所有关 于编写编译器的教科书。 2.1 匹配字符 大多数字母和符号都会简单地匹配自身。例如,正则表达式 test 将会精确地匹配到 test 将匹配 'ct' (0 个 'a' )、'cat' (1 个 'a' )、'caaat' (3 个 'a' )等等。 类似 * 这样的重复是 贪婪的。当重复正则时,匹配引擎将尝试重复尽可能多的次数。如果表达式的后续 部分不匹配,则匹配引擎将回退并以较少的重复次数再次尝试。 通过一个逐步示例更容易理解这一点。让我们分析一下表达式 a[bcd]*b 。该表达式首先匹配一个字母 'a' ,接着匹配字符类 [bcd]0 码力 | 17 页 | 404.43 KB | 11 月前3 Python 3.12 正则表达式 HOWTO 。你还可以用 正则来修改字符串,或以各种方式将其拆分。 正则表达式会被编译成一系列字节码,然后由 C 语言编写的匹配引擎执行。对于高级用途,可能有必要 特别注意引擎将如何执行一个给定的正则,并以某种方式写入正则,以生成运行更快的字节码。本文不 涉及优化问题,因为这要求你对正则引擎的匹配过程有很好的了解。 正则表达式语言相对较小且受限,因此并非所有可能的字符串处理任务都可以使用正则表达式完成。有 代码会比精心设计的正则表达式慢,但它可能更容易理解。 2 简单正则 让我们从最简单的正则表达式开始吧。由于正则表达式是用来操作字符串的,我们将从最常见的任务开 始:匹配字符。 关于正则表达式背后的计算机科学的详细解释(确定性和非确定性有限自动机),你可以参考几乎所有关 于编写编译器的教科书。 2.1 匹配字符 大多数字母和符号都会简单地匹配自身。例如,正则表达式 test 将会精确地匹配到 test 将匹配 'ct' (0 个 'a' )、'cat' (1 个 'a' )、'caaat' (3 个 'a' )等等。 类似 * 这样的重复是 贪婪的。当重复正则时,匹配引擎将尝试重复尽可能多的次数。如果表达式的后续 部分不匹配,则匹配引擎将回退并以较少的重复次数再次尝试。 通过一个逐步示例更容易理解这一点。让我们分析一下表达式 a[bcd]*b 。该表达式首先匹配一个字母 'a' ,接着匹配字符类 [bcd]0 码力 | 17 页 | 404.43 KB | 11 月前3
共 125 条
- 1
- 2
- 3
- 4
- 5
- 6
- 13














 
 