我想从字符串中捕获数组键。
以下是我的话:message[0][generic][0][elements][0][default_action][url]...
我想在message[0][generic][0][elements][0]
之后捕获数组键,预期结果为default_action
和url
等。
我尝试过以下模式,但没有工作。
message\[0\]\[generic\]\[0\]\[elements\]\[0\](?=\[(\w+)\])
:它仅捕获default_action
; \[(\w+)\]
:它会捕获所有数组键,但包括0
,generic
,elements
... 是否有任何JavaScript的正则表达式模式使结果数组反转,如[url, default_action]
?
答案 0 :(得分:1)
您可以替换不需要的字符串部分,然后获取所有其他键。
var string = 'message[0][generic][0][elements][0][default_action][url][imthird]';
var regexp = /message\[0\]\[generic\]\[0\]\[elements\]\[0\]/
var answer = string.replace(regexp,'').match(/[^\[\]]+/g)
console.log(answer);
答案 1 :(得分:0)
使用String.prototype.split()
和Array.prototype.slice()
函数的解决方案:
var s = 'message[0][generic][0][elements][0][default_action][url]...',
result = s.split(/\]\[|[\[\]]/g).slice(-3,-1);
console.log(result);
答案 2 :(得分:0)
提取任意数量的键并反转结果数组中元素的顺序:
<!-- https://mvnrepository.com/artifact/com.databricks/spark-csv_2.11 -->
<dependency>
<groupId>com.databricks</groupId>
<artifactId>spark-csv_2.11</artifactId>
<version>1.0.3</version>
</dependency>
&#13;