2012-04-01 227 views
4

我在JavaScript中遇到了这个RegExp /[[0]]/,并且一直在想这是什么意思。双正方括号[[]]在正则表达式中意味着什么?

我知道[]的外层应该用作角色类,但内层对呢?我在谷歌搜索,发现this link,但“整理序列”似乎并不是因为“因为我不能得到/[[.some.]]/工作,因为这个网页声称。

在此先感谢,如果有人可以给我一个提示。

+0

网站上说:'我不知道任何支持整理序列的正则表达式引擎,POSIX兼容引擎不是POSIX兼容引擎的一部分。“ 也许这就是为什么它不起作用? – 2012-04-01 15:21:04

回答

10
/[[0]]/ 

相当于:

  • [0字符,接着是]字符。
    • 有效匹配为:
      • []
      • 0]
    • 无效的比赛:
      • [0
    • 有效的字符串,但可能不是预期的匹配:
      • [0](匹配0]

换句话说:/(\[|0)\]//[\[0]\]/
在现实的话:([ or 0) plus ]

+0

哇,真的,但为什么'/(\ [| 0)\] /'而不是'/(\ [| 0 | \])/'?我的意思是,'''跟在'0'后面是如此的特别? – Rufus 2012-04-01 15:25:48

+2

@Rufus这很特别,因为它已经被'['打开了。 – 2012-04-01 15:27:04

+0

@Rufus:是的。尽管逃避角色仍然更好,这使得它更易于理解。 – 2012-04-01 15:31:46