+ -
当前位置:首页 → 问答吧 → 正则问题

正则问题

时间:2010-05-26

来源:互联网


<script> var str = '[D:05,06][T:03,15,16,17,18,19]|[D:][T:06,07]$[D:][T:05,08,21,28,29,31,33]|[D:03][T:05,06]'; var cat = /[^:]+?(?=\])/g; var n = str.match(cat); alert(n.join('\n')+'\n'+n.length) </script>
 提示:您可以先修改部分代码再运行
如果用*就如下
<script> var str = '[D:05,06][T:03,15,16,17,18,19]|[D:][T:06,07]$[D:][T:05,08,21,28,29,31,33]|[D:03][T:05,06]'; var cat = /[^:]*?(?=\])/g; var n = str.match(cat); alert(n.join('\n')+'\n'+n.length) </script>
 提示:您可以先修改部分代码再运行
我想获取:]之间的内容,如果像[D:]这种也要返回为空。

作者: fenghuif   发布时间: 2010-05-26


<script> var str = '[D:05,06][T:03,15,16,17,18,19]|[D:][T:06,07]$[D:][T:05,08,21,28,29,31,33]|[D:03][T:05,06]'; var cat = /[^[]+?(?=\])/g; var n = str.match(cat); for(var i=0;i<n.length;i++){ cat=/(D:)|(T:)/g; n[i]=n[i].replace(cat,'') } alert(n.join('\n')+n.length) </script>
 提示:您可以先修改部分代码再运行
我这样写也做出来了,不过想抛砖引玉下,有简洁点的代码吗?

作者: fenghuif   发布时间: 2010-05-26

正则一看我就想吐 拜你所赐 我一顿晚饭钱剩了

作者: cwq2jxl   发布时间: 2010-05-26


<script> var n = []; '[D:05,06][T:03,15,16,17,18,19]|[D:][T:06,07]$[D:][T:05,08,21,28,29,31,33]|[D:03][T:05,06]'.replace(/\[.+?:(.*?)\]/g, function(a, b){ n.push(b); }); alert(n.join('\n')+n.length); </script>
 提示:您可以先修改部分代码再运行

作者: faeng220   发布时间: 2010-05-26


<script> var s = '[D:05,06][T:03,15,16,17,18,19]|[D:][T:06,07]$[D:][T:05,08,21,28,29,31,33]|[D:03][T:05,06]'; alert(s.match(/[\d,]+(?=])/g).join('\n')) </script>
 提示:您可以先修改部分代码再运行

作者: campaignZH   发布时间: 2010-05-26

请问5楼的回复和我所写有区别吗?
还是小秦写的东西每次我看了都有所收获。

作者: fenghuif   发布时间: 2010-05-27

你是先取出[]中的内容,然后再循环过滤掉,这样不是很麻烦吗,一句正则就可以取出你要的不好吗

作者: campaignZH   发布时间: 2010-05-27

麻烦楼上的看清我的要求,只是取出【】你以为我还会发帖问么

作者: fenghuif   发布时间: 2010-05-28


<script> var n = []; '[D:05,06][T:03,15,16,17,18,19]|[D:][T:06,07]$[D:][T:05,08,21,28,29,31,33]|[D:03][T:05,06]'.replace(/\[[^:]+:([^\]]+)\]/g, function(a, b){ n.push(b); }); alert(n.join('\n')+n.length); </script>
 提示:您可以先修改部分代码再运行
非不得已的情况下尽量别用非贪婪匹配,会降低效率,尤其是一个正则中存在多个非贪婪匹配的时候

作者: 我佛山人   发布时间: 2010-05-28

引用:
非不得已的情况下尽量别用非贪婪匹配,会降低效率,尤其是一个正则中存在多个非贪婪匹配的时候
这种说法出自何处?我还是第一次听说

作者: faeng220   发布时间: 2010-05-28

非贪婪模式下,它会多次回溯判断是否最小匹配,所以效率上相对低些
http://www.koyoz.com/blog/?action=show&id=251
http://www.alaoo.com/club/MINI/Default.asp?6-687-0-0-0-0-0-a-.htm

作者: 我佛山人   发布时间: 2010-05-29

'[D:05,06][T:03,15,16,17,18,19]|[D:][T:06,07]$[D:][T:05,08,21,28,29,31,33]|[D:03][T:05,06]'.replace(/\[.+?.*?)\]/g, function(a, b){
  n.push(b);
});
请问那里有这里参数a,b定义的教程。

作者: fenghuif   发布时间: 2010-06-03

相关阅读 更多