使用 flex 将 Python 多行字符串与转义字符匹配

2024-01-09

我想知道如何将 python 多行注释与 flex 相匹配。我遇到了一些麻烦,以下工作正常Regexr https://regexr.com/,但不被flex识别,我不知道如何修复它。

"""[^"\\]*(?:(?:\\.|"{1,2}(?!"))[^"\\]*)*"""

以前,我使用过:

["]{3}(\\["])*(["]{0,2}[^"](\\["])*)*["]{3}

它可以检测以下评论:

"""A\"""A"""

但是,它不能处理多个 \,例如

'''A\\\\'''A=B'''C'''

它将其视为一个整体而不是:

'''A\\\\'''  (comment)   
A=B     
'''C'''(comment) 

您可以使用单个正则表达式识别 Python 长字符串。它并不漂亮,但我相信它有效:

["]{3}(["]{0,2}([^\\"]|\\(.|\n)))*["]{3}

这与您原来的正则表达式非常相似,但它不会尝试将其反斜杠处理限制为\",这样就可以正确识别\\作为反斜杠字符。

一个可能更容易阅读(但稍微慢一些)的解决方案是使用 start 启动条件。这里我用的是yymore()创建一个不包含的单个令牌"""分隔符,但生产代码可能会试图解释 Python 的各种反斜杠转义符。 (正是这种需求促使使用起始条件,而不是尝试使用单个正则表达式识别整个字符串。)

%x SC_LONGSTRING
%%
["]{3}     BEGIN(SC_LONGSTRING);
<SC_LONGSTRING>{
  [^\\"]+  yymore();
  \\(.|\n) yymore();
  ["]["]?  yymore();
  ["]{3}   { BEGIN(INITIAL);
             yylval.str = malloc(yyleng - 2);
             memcpy(yylval.str, yytext, yyleng - 3);
             yylval.str[yyleng - 3] = 0;
             return TOKEN_STRING;
           }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 flex 将 Python 多行字符串与转义字符匹配 的相关文章

  • 命令“pip list”显示错误

    我想做 python 但我什至无法配置它 D 所以我在 Linux Mint 上安装了 pip 当输入 pip list 时出现错误 Exception Traceback most recent call last File usr li
  • 标准化 Unicode

    在Python中是否有一种标准方法来规范化unicode字符串 以便它只理解可用于表示它的最简单的unicode实体 我的意思是 可以翻译类似序列的东西 LATIN SMALL LETTER A COMBINING ACUTE ACCENT
  • _启动服务器时 Django 中出现死锁错误

    我在启动 python 服务器时多次遇到此错误 当我更改任何文件并且服务器再次启动时也会发生这种情况 我尝试删除环境并重新创建环境 但仍然存在相同的错误 Python 3 5 2 默认 2018 年 11 月 12 日 13 43 14 G
  • NE、SW 盒内的 GeoDjango

    我正在使用 Google 地图创建一个地理应用程序 并收到 2 个坐标的边界框 东北 西南 我有一个带有 PointField 的模型 from django contrib gis db import models class Place
  • OSError: [Errno 8] MacOS 上的 GeckoDriver 和 Selenium 执行格式错误

    我正在使用 firefox gecko 驱动程序来制作机器人 我的机器人不断收到错误消息 我发现消息的来源是 from selenium import webdriver browser webdriver Firefox lines 我已
  • 如何使用Python根据Excel中的文本更改颜色?

    在Excel单元格中 通过和失败的文本会有所不同 我必须分别为通过 通过 通过 通过 提供绿色背景颜色 为失败 失败 失败 失败 提供红色背景颜色 如何根据文本更改颜色 我的脚本 import xlwt workbook xlwt Work
  • 如何将 int numpy 数组的列乘以浮点数字并保持 int 形式?

    我有一个 numpy 数组 gt gt gt b array 2 2 6 4 10 6 我想将第一列乘以浮点数 结果我需要 int 数字 因为当我这样做时 gt gt gt b 0 2 1 It says TypeError Cannot
  • Python 递归搜索带有嵌套键的字典

    我最近必须使用嵌套的字典 列表组合来解决实际数据系统中的问题 我为此工作了很长一段时间并提出了解决方案 但我非常不满意 我不得不求助于使用globals 和一个命名的临时全局参数 我不喜欢使用全局变量 这只是要求注入漏洞 我觉得必须有一种更
  • 在Python 3中从网络下载文件

    我正在创建一个程序 通过读取同一游戏 应用程序的 jad 文件中指定的 URL 从 Web 服务器下载 jar java 文件 我正在使用Python 3 2 1 我已经设法从 JAD 文件中提取 JAR 文件的 URL 每个 JAD 文件
  • Pandas 在 groupby 之后获取行

    假设我有以下数据集 uid iid val 1 1 2 1 2 3 1 3 4 1 4 4 5 1 5 5 5 2 1 3 2 2 3 2 3 4 3 4 4 5 3 5 5 5 根据这些数据 我想首先按 uid 进行分组 然后从每个 ui
  • 为 Python 终端提供持久的历史记录

    有没有办法告诉交互式 Python shell 保留会话之间执行命令的历史记录 当会话运行时 在执行命令后 我可以向上箭头并访问所述命令 我只是想知道是否有某种方法可以保存一定数量的这些命令 直到下次使用 Python shell 时 这将
  • 使用 NLTK 生成字典以将推文分类为预定义类别

    我有一个 Twitter 用户 screen names 列表 我需要根据他们的兴趣领域将他们分为 7 个预定义类别 教育 艺术 体育 商业 政治 汽车 技术 我用 Python 提取了用户的最后 100 条推文 并在清理推文后为每个用户创
  • 如何计算列表的最小不公平性总和

    我试图将问题陈述总结如下 Given n k和一个数组 列表 arr where n len arr and k is an integer in set 1 n inclusive 对于数组 或列表 myList 不公平总和定义为sum中
  • 从 sqlalchemy 获取第一行

    我有以下查询 profiles session query profile name filter and profile email email profile password password hash 如何检查是否存在一行以及如何返
  • Python 3 基于列名相似度的匹配值

    我有以下形式的数据框 Year 1 Grade Year 2 Grade Year 3 Grade Year 4 Grade Year 1 Students Year 2 Students Year 3 Students Year 4 St
  • 织物与预期

    我偶然发现pexpect http sourceforge net projects pexpect 我的印象是它看起来大致类似于fabric http fabfile org 我试图找到一些比较 但没有成功 所以我在这里询问 以防有人对这
  • 检测并打印是否未提供命令行参数

    这是我的程序 from sys import argv script arg1 argv def program usr input arg1 if usr input arg1 print CLI argument and user in
  • 如何在 django 模板中转义 {{ 或 }} ?

    姜戈款待 var 作为其模板中的一些变量 我该如何逃脱 var or or 这样 django 不会将其视为变量 p some text p 打印出来应该一模一样 Django 1 5 介绍 verbatim https docs djan
  • 创建目录中多个文本文件的字数统计字典

    我在 word count directory 函数中使用 build dict 函数来创建目录中三个文件的字数统计字典 我想创建三个字典 每个文件一次一个 并更新以前的字典 我的代码创建一个字典 word count 它同时组合所有三个字
  • 如何从复杂的验证码中提取数字

    我正在尝试解析下图的验证码 https ibb co 35X723J https ibb co 35X723J 我尝试过使用超正方体 data br open captchaurl read b bytearray data save op

随机推荐

  • scipy 树形图转 json 用于 d3.js 树可视化

    我正在尝试将 scipy 层次聚类的结果转换为 json 以在 d3 js 中显示一个例子 http bl ocks org mbostock 4063550 以下代码生成具有 6 个分支的树状图 import pandas as pd i
  • Java 到 JavaScript 编译器 [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 除了 GET 之外 还有其他 Java 到 JavaScript 编译器吗 目前我所有的工作都是用 Ja
  • 在 C++ 中存储任意对象的列表

    在 Java 中 您可以拥有一个对象列表 您可以添加多种类型的对象 然后检索它们 检查它们的类型 并针对该类型执行适当的操作 例如 如果代码不完全正确 我深表歉意 我是凭记忆写的 List list new LinkedList list
  • Python 中的本地导入语句

    我认为将 import 语句放置在靠近使用它的片段的位置 可以使其依赖关系更加清晰 从而提高可读性 Python 会缓存这个吗 我应该关心吗 这是一个坏主意吗 def Process import StringIO file handle
  • SplunkMint 上传 dSym

    每次尝试运行以下脚本 SplunkMint 脚本自动上传 dsym 文件以进行符号化 时 我都会收到此错误 SCRIPT usr bin find SRCROOT name splunkmint postbuild dsym upload
  • SQL Server CE 密码允许使用的字符吗?

    在我们开发的 Web 应用程序中 我们生成 SQL Server CE 数据库文件 并为这些文件生成密码 密码是使用 System Web Security Membership GeneratePassword 生成的 我认为Genera
  • 如何在 Tomcat 中启用 java 断言

    我想使用Javaassert我的 Spring Web 应用程序中的关键字 主要是在我的域类上 检查构造函数内的不变量 但我看不到如何启用运行时断言检查 对于普通的java应用程序 我会使用 ea使用 java 命令进行切换 但我不知道如何
  • 如何处理 jQuery UI Selectmenu 更改事件

    我使用 jquery ui 选择菜单自定义渲染选项 http jqueryui com selectmenu custom render 我该如何处理change event i try filesA on change function
  • 如何在 ng-repeat (AngularJS) 中绑定多个 JSON 文件?

    我有多个 JSON 文件 主要 json MainRegister name Name1 url url1 json name Name2 url url2 json url1 json SubInformation description
  • 使用 scipy.spatial 的数据类型问题

    我想使用 scipy spatial 的 KDTree 来查找二维数组中的最近邻对 本质上是一个列表列表 其中嵌套列表的维度为 2 我生成列表列表 将其通过管道传输到 numpy 的数组中 然后创建 KDTree 实例 然而 每当我尝试对其
  • 使用 Mockito 模拟 Jersey 客户端

    您好 我正在使用 JUnit 和 Mockito 测试 Jersey Client 1 19 版本 我正在努力获取或阅读该实体 我不知道如何从那里继续 而且我也收到 IllegalStateException 下面是我用来为客户端响应创建模
  • 如何在AWS上自动部署带有子模块的git存储库?

    我的 git 存储库中有一个子模块 我的目录结构如下 app folder1 folder2 submodule 5855 我已使用自动部署服务在 AWS 上部署了我的代码 现在 在服务器上 我的父目录中有代码 但子模块目录为空 Q1 如何
  • 量角器 - 查找所有元素和找到的元素的循环长度,然后单击按钮

    所以我一直在试图弄清楚如何根据 find All 元素的数量来单击按钮 x 次 这意味着如果同一个类名找到 3 个元素 那么我们循环 3 次 这应该单击按钮 3 次 我做了这样的事情 新更新 请查看底部的编辑帖子 通常情况下element
  • StrictMode java.lang.Throwable:检测到未标记的套接字

    启用 StrictMode 后 我刚刚开始收到此异常 java lang Throwable 检测到未标记的套接字 使用 TrafficStats setThreadSocketTag 跟踪所有网络使用情况 有几种方法可以处理此异常 首先
  • 使用细粒度锁的代码示例(JCR Jackrabbit?)

    我正在进行一项学术研究 试图开发一种编程工具 帮助实现细粒度锁定功能 用于维护树状数据结构的并发程序 例如 程序员可能会编写一些接收树根节点并修改树的函数 通过遍历某些路径并添加 删除节点 该工具将帮助他找到代码中节点应该被锁定的位置 以及
  • PDO-bindParam 不起作用

    我正在创建一个 PDO 类以在我的项目中使用 但由于我是新手 所以我无法将参数绑定到准备好的 sql 语句 而不会出现任何错误 这是执行此操作的函数 bindParam public static function bind get fun
  • java.net.URI.relativize 不适用于 JAR URI

    我有两个 URI 对象 一个指向 JAR 文件中的文件夹 另一个指向同一 JAR 文件中的文件 该文件位于第一个 URI 指定的目录的子文件夹中 我喜欢创建一个相对 URI 因此生成的 URI 仅包含 JAR 中文件的相对路径 文件夹URI
  • IIS 上的 Python:如何?

    我有 PHP dotNet 背景 并且对 Python 着迷 我想逐步将功能从 PHP 转置为 Python 并排运行各个部分 由于应用程序规模庞大 这一过渡可能需要 2 年时间 因此我必须使用 IIS 我有 15 年的 Web 编程背景
  • 使用 AFIncrementalStore 和 NSFetchedResultsController 出现死锁

    这几天我一直在苦苦思索这个问题 但我一生都无法弄清楚到底发生了什么 我对核心数据很陌生 但我对它足够了解 可以避免死锁情况 然而 对于这个项目 我决定尝试合并 AFIncrementalStore 我构建了一个示例项目来测试 APIClie
  • 使用 flex 将 Python 多行字符串与转义字符匹配

    我想知道如何将 python 多行注释与 flex 相匹配 我遇到了一些麻烦 以下工作正常Regexr https regexr com 但不被flex识别 我不知道如何修复它 1 2 以前 我使用过 3 0 2 3 它可以检测以下评论 A