提取特定数据的正则表达式

来源:百度知道 编辑:UC知道 时间:2024/05/28 06:56:06
我有一个字符串"forms[myform][keywords]".要用正则表达式取出"[]"中间的值.并返回一个数组.如果forms后面有一个"[]"或者多个"[]",用这个正则都能提取出来!请高手指点.谢谢
一楼的 js 语言
二楼的方法可以,但不符合要求.

烦死我了,js不支持零宽断言中(?<=)的格式,最后取出来后做了下处理,代码如下,有问题hi我

<script language="JavaScript" type="text/javascript">
var reg=/\[.*?(?=\])/g;
var str="forms[myform][keywords]";
var arr=str.match(reg);
for(var i=0;i<arr.length;i++)
{
arr[i]=arr[i].substring(1,arr[i].length)
document.write(arr[i]+"<br>");
}
</script>

————————————————————————————
用的什么语言啊,js?asp?php?jsp?

可以分两步走:

第一可以先把forms[][][]后面的一个或多个[]找出来,然后再取里面内容放进数组

1,取forms后的[]正则:(?<=forms\[).*(?=\])

这样就拿出了如果是:forms[aaaa][bbbb][cccc],就会变成:aaaa][bbbb][cccc

2,接着匹配不是这两个符号“][”,正则这么写:[^\]\[]*

然后在循环找去匹配项赋值给数组就可以了。

必须用正则吗?
感觉正则会很麻烦,用split("][")不是可以吗?
把第一个和最后一个处理下,第一个REPLACE("forms[","")
最后一个REPLACE("]","")
而且split返回的就是一个数组

以上纯属个人