2012-04-01 230 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