这个(([^]]+))是什么意思?

软件和网站开发以及相关技术探讨
回复
头像
hackem
帖子: 258
注册时间: 2006-10-19 21:42
来自: inside
联系:

这个(([^]]+))是什么意思?

#1

帖子 hackem » 2008-05-09 19:36

/\[audio:(([^]]+))]/i

PHP里的,为什么后面的]不需要用\来过滤呢?
里面的(([^]]+))直接换成([^]]+)不行?
ubuntu是个好东西
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

#2

帖子 eexpress » 2008-05-09 21:58

(())是数学计算
● 鸣学
头像
laborer
帖子: 1016
注册时间: 2005-10-25 11:15
联系:

#3

帖子 laborer » 2008-05-09 23:09

应该转到PHP的板块
hreiser@oakland:~$ killall -9 wife
police@oakland:~$ sudo find / -user hreiser
court@oakland:~$ sudo mv /home/hreiser /jail/
court@oakland:~$ sudo usermod -d /jail/hreiser -s "/usr/sbin/chroot /jail/" hreiser
头像
zhasm
帖子: 26
注册时间: 2007-03-22 16:22
联系:

#4

帖子 zhasm » 2008-05-10 7:24

代码: 全选

/\[audio:(([^]]+))]/i
分析一下该正则式:
  • \[ :匹配普通文本格式的[.
    audio: :匹配普通文本格式的audio:
    (()):从正则表达式的角度来看,只需要一对()即可,它的作用是为了回溯引用,即,使用\1,\2之类的标记来取得原来匹配过的部分内容. eexpress兄说(())是数学计算,还请赐教.
    [^]]+: 这是一个小技巧,它是用来匹配右中括号]之前的所有内容.里面的]无需转义,不能写成[^\]]+
结合以上两条,(([^]]+))直接换成([^]]+)的话,不影响匹配.至于是否属于数学运算范畴,我尚不清楚.
回复