【问题标题】:What regex could be used to match function parameters with/without quotes?什么正则表达式可用于匹配带/不带引号的函数参数?
【发布时间】:2019-07-25 14:32:44
【问题描述】:

我正在编写一个解释器,我想捕获函数参数。给定引号中的某些内容,例如('one, two',3,"four"),我想使用正则表达式(如果可能的话)来提取每个元素:'one, two'3"four",尽管是单引号或双引号,或不引用。我还希望它能够识别在引号内跳过逗号(因此 'one, two' 被解释为单个参数)。这怎么可能?

我已经尝试了一些事情,但没有运气,还没有发现任何可以处理参数列表中的引号的问题。如有任何帮助,我将不胜感激。

【问题讨论】:

  • 哪种编程语言?
  • stackoverflow.com/questions/2700953/… 和许多其他类似问题
  • 正则表达式可以是一个方便的工具,但是当编写解释器/解析器并且文档不符合其语法时,正则表达式只会告诉你“不匹配”。根据您想要的错误检测级别,正则表达式可能是错误的选择。

标签: regex


【解决方案1】:

你可以试试这个:'([^'()]*)'|"([^"()]*)"|\b(\S*?)\b\s*[,)]

这是一个关于 regex101 的演示。 https://regex101.com/r/3jkgWJ/1

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-02-03
    • 1970-01-01
    • 1970-01-01
    • 2010-09-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多