2017-09-06 224 views
3

我知道JavaScript「(x)」可以記住模式和匹配,但我有一個關於它的問題。 這裏是我的代碼:?「 3」在正則表達式中的含義是什麼?

var re = /(\w*)(abc)\1\2/; 
var str = '123dabc123dabc' 
console.log(re.exec(str)) 

var re = /(\w*)(abc)\1\3/; 
var str = '123dabc123dabc' 
console.log(re.exec(str)) // this must be null,because "\3" is not the right pattern,but what·s the "\3" ·s match rules in here 

我想知道哪些STR \3可以匹配...

回答

4

當指的是不存在的捕獲組指標,它指的是字符索引。

所以\3字符??匹配帶有指數3^8(3^10或3^16)從字面上

??因爲沒有字符被映射到這一點。如果你已經寫了另一個八進制值,比如說\51,你應該匹配)。需要注意的是,如果你(覺得)你使用\48爲八進制值,這是不行的,它將作爲\4其次是文字8

這是非常類似的,當你使用十六進制,你可能已經看到對待\ X30例如...

\x30字符0匹配與索引30^16(48^10或60^8)從字面上

+0

http://www.rexegg.com/regex-capture.html幫我更好地理解這個答案。並且http://www.asciitable.com/顯示符合「文本結束」字符的八進制'3'。 – StriplingWarrior

+1

謝謝!我實際上是在尋找確切的角色...因此,爲什麼我想用一個實際可讀的角色來舉個例子。 regex101.com也非常有趣,因爲它實時爲您提供令牌匹配,因此您可以使用它並理解行爲。 – Salketer

相關問題