gpt4 book ai didi

java - 显式匹配模式 [] 或 [][] 的正则表达式。?

转载 作者:行者123 更新时间:2023-12-01 06:04:03 25 4
gpt4 key购买 nike

我正在为用于基准测试实验的脚本语言编写解析器。我在其中引入了一维和二维数组的概念,并尝试编写正则表达式以显式匹配 []出现>[][] 在语句中,并相应地在内部处理数组值的存储和检索。

我已经编写了一个匹配的正则表达式

[][] ,并且

[]明确地,但是

问题是,在第二种情况下,我的 REGEX 依赖于在匹配[]之前匹配任何编程语言中的变量定义模式。

有人可以建议另一种编写 2nd REGEX 的方法吗?它独立于匹配之前的变量模式,并且应该只匹配 [] 类型的单个出现?

例如:

第二个正则表达式不应匹配字符串中的任何子字符串:

数组1[123] [345]

相反,它应该仅匹配

array2[12]

我试过[]但是,它是部分正确的,因为它也匹配

数组[1][2]

前缀[23423][23435],我不希望它这样做。

有人可以帮忙吗,如何解决这个问题?

最佳答案

您可以使用

(?<!])\[\d+](?!\[)

请参阅regex demo .

详细信息

  • (?<!]) - 如果存在],则匹配失败的负向后查找紧邻当前位置的左侧
  • \[ - 一个[
  • \d+ - 1+ 位数字
  • ] - 一个]字符
  • (?!\[) - 如果存在[,则匹配失败的负前瞻紧邻当前位置的右侧。

关于java - 显式匹配模式 [] 或 [][] 的正则表达式。?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49826226/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com