【问题标题】:Using regex to ignore invalid syntax [closed]使用正则表达式忽略无效语法 [关闭]
【发布时间】:2015-08-13 02:01:17
【问题描述】:

https://regex101.com/r/jK9mH3/1 这是我的正则表达式的链接,为了不占用我放在那里的所有页面,我试图让它输出 a0,然后是 a-z,然后是 aa-aq。

编辑:好的,我很抱歉,我需要运行一个程序来检查所有字典的变量名,但这不是基本的,我需要它来检查所有不同类型的语法,比如检查器中列出的语法,因此它需要能够识别 d = "{}" 实际上不是字典,它是一个字符串,而 #z = {} 是注释而不是字典。网站上的输出将是 a0,然后是 a-z,中间没有随机 z,然后是 aa-aq(即 aa、ab、ac、ad 等)

【问题讨论】:

  • 请描述您要检测的内容! =前面的所有变量名?还是别的什么?
  • 你想要完成什么?为什么要忽略无效语法?
  • 理论上这是不可能的。正则表达式不如上下文无关语法强大。

标签: python regex


【解决方案1】:

虽然您的问题没有多大意义,但我相信您正在尝试检测给定字符串中的有效 python 语法。

不要为此使用正则表达式。为此使用词法分析器/解析器。它旨在处理在像 python 这样的语言中发现的复杂结构。

Guide to Lexing and Parsing

【讨论】:

  • 我必须使用类似的东西,抱歉我很着急。我的意思是我需要获取所有字典的变量名。所以如果它是 d = "{ }" 它不会打印 d 因为那不是字典但是如果它是 d ={}; e = {} 它会同时打印 d 和 e,因为它们是有效的。
猜你喜欢
  • 1970-01-01
  • 2014-02-21
  • 2019-03-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-23
  • 2021-09-13
相关资源
最近更新 更多