用于显式匹配模式 [] 或 [][] 的正则表达式。?
Regular expression for matching patterns [] or [][] explicitly.?
我正在为用于基准测试实验的脚本语言编写解析器。我在其中引入了 1 维和 2 维数组的概念,并尝试编写正则表达式以显式匹配 of []
or [=11] =] 在语句中并相应地在内部处理数组值的存储和检索。
我写了一个匹配
的正则表达式
[][],以及
[] 明确,但是
问题是,在第二种情况下,我的 REGEX 依赖于在匹配之前匹配任何编程语言中的变量定义模式[]
。
谁能建议另一种为 2nd 编写 REGEX 的方法,它独立于匹配它之前的变量模式并且应该只匹配一次出现的 []
种类?
例如:
第二个 REGEX 不应匹配 STRING 中的任何子字符串:
array1[123]
[345]
相反,它应该只匹配
array2[12]
我试过 [] 但是,它部分正确,因为它也匹配
数组[1][2]
prefix[23423][23435]
我不想这样。
谁能帮忙,如何解决这个问题?
试试这个
(?<!\])(\[\d+\])(?=[^[])
说明
(?<!\]) - lookbehind for any character diferent from "[" (this also consumes the caracter so they won´t be on the match)
(\[\d+\]) - find digits surrounded by []
(?=[^[]) - lookahead for any character that isn't "[" (this won't be taken in the match)
试试这个
(?<!\])(\[\d+\])(?>\s)
可以试试这个。
[\[|\]]
匹配出现的所有内容。
您可以使用
(?<!])\[\d+](?!\[)
参见regex demo。
详情
(?<!])
- 如果在当前位置 的左侧有一个 ]
,则匹配失败的负后视
\[
- [
\d+
- 1+ 位数
]
- 一个 ]
字符
(?!\[)
- 如果当前位置右侧紧邻 [
,则匹配失败的否定前瞻。
我正在为用于基准测试实验的脚本语言编写解析器。我在其中引入了 1 维和 2 维数组的概念,并尝试编写正则表达式以显式匹配 of []
or [=11] =] 在语句中并相应地在内部处理数组值的存储和检索。
我写了一个匹配
的正则表达式[][],以及
[] 明确,但是
问题是,在第二种情况下,我的 REGEX 依赖于在匹配之前匹配任何编程语言中的变量定义模式[]
。
谁能建议另一种为 2nd 编写 REGEX 的方法,它独立于匹配它之前的变量模式并且应该只匹配一次出现的 []
种类?
例如:
第二个 REGEX 不应匹配 STRING 中的任何子字符串:
array1[123]
[345]
相反,它应该只匹配
array2[12]
我试过 [] 但是,它部分正确,因为它也匹配
数组[1][2]
prefix[23423][23435]
我不想这样。
谁能帮忙,如何解决这个问题?
试试这个
(?<!\])(\[\d+\])(?=[^[])
说明
(?<!\]) - lookbehind for any character diferent from "[" (this also consumes the caracter so they won´t be on the match)
(\[\d+\]) - find digits surrounded by []
(?=[^[]) - lookahead for any character that isn't "[" (this won't be taken in the match)
试试这个
(?<!\])(\[\d+\])(?>\s)
可以试试这个。
[\[|\]]
匹配出现的所有内容。
您可以使用
(?<!])\[\d+](?!\[)
参见regex demo。
详情
(?<!])
- 如果在当前位置 的左侧有一个 \[
-[
\d+
- 1+ 位数]
- 一个]
字符(?!\[)
- 如果当前位置右侧紧邻[
,则匹配失败的否定前瞻。
]
,则匹配失败的负后视