【发布时间】:2016-08-27 23:20:13
【问题描述】:
我仍然很难理解正则表达式... :-/
给定字符串(类似 JavaScript 的表达式),比如这些......
foo[0]foo[4][2]foo[4][2][234523][3]
...我正在尝试解构正则表达式中的索引,以便我拥有
- 变量名:
foo - 单个索引:上一个示例中的 fox 示例
4、2、234523和3
而不接受像
这样的无效语法foo[23]bar[55]foo[123]bar[123]blafoo[urrrr]
也可以忽略 foo [13] 或 foo[ 123 ] 这样的空格,但这并不重要。
用正则表达式可以吗?
我能够使用var matches = s.match(/\[([0-9]?)\]/g); 提取括号,但结果中包含括号,缺少变量名称(可以绕过该问题),并且也不尊重上述边缘情况。
【问题讨论】:
-
什么会被认为是有效的语法?例如,
foo[23] bar[55]是否有效,或者它们之间是否需要换行,或者右括号是否需要是最后一个字符? -
foo[23]和bar[55]将是两个独立的示例。因此,单个字符串foo[23] bar[55]将是无效的。当X是要解析的字符串时,var foo = X;必须是有效的语法。我实际上是在尝试解码 JavaScript 语言的一个非常小的子集。 -
你不能用正则表达式解析JS...
标签: javascript regex