簡體   English   中英

帶有九對以上括號的正則表達式

[英]Regular expression with more than nine pairs of brackets

我有一個帶有十對方括號的正則表達式。 使用RegExp.$n我需要訪問括號對1、2和10。在JS中,只能訪問不超過9的括號對。由於我不需要訪問3至9的括號對,因此可以更改常規這樣的括號不算數嗎? 然后我可以通過RegExp.$3訪問支架對9。 對於此問題的任何其他解決方案,我也感到滿意。 謝謝!

匹配結果可通過組號索引(整個匹配中始終存在一個隱式組0 ):

> "banana".match(/()()()()()()()()()()(na)+/)[11]
"na"
> "banana".match(/()()()()()()()()()()(na)+/)[0]
"nana"

// Works with exec too
> /()()()()()()()()()()(na)+/.exec("banana")[11]
"na"

請注意,在replace() ,似乎對組號沒有限制:

> "banana".replace(/()()()()()()()()()()(na)+/, "[$11]")
"ba[na]"

要回答問題的另一部分-是的,確實有可能使用(?:foo)語法而不是(foo)來創建所謂的非捕獲組

您可以使用?:創建非捕獲組,以用於以后不需要訪問的內容。

"rex".match(/(r)(?:e)(x)/)
// ["rex", "r", "x"]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM