簡體   English   中英

無法匹配JavaScript正則表達式中的特定組

[英]Cannot match specific group in JavaScript regex

我正在使用Rainbow.js庫向LaTeX代碼添加語法突出顯示,如下所示:

Rainbow.extend('latex', [
    {
        'name': 'comment',
        'pattern': /%.*$/gm
    },
    {
        'name': 'storage.function',
        'pattern': /\\[A-z@]+/g
    },
    {
        'matches':
        {
            1: 'entity.name.function',
            3: 'entity.class'
        },
        'pattern': /(\\(begin|end))\s*\{(.*?)\}/g
    }
], true)

但是,即使按我所看到的其他方式,該組也已被捕獲,但它無法突出顯示#3組。 任何想法可能出了什么問題嗎? 為什么要匹配第一組而不匹配第三組?

您的問題是您忘記了逃脫第二個括號,因此它應該是/(\\\\(begin|end\\\\))\\s*\\{(.*?)\\}/g

但是您只有兩個組,第一組(\\\\(begin|end\\\\))和第二組(.*) 如果您不需要獲取組的內容,則可以使其不捕獲(這樣可以提高性能),請參閱什么是不捕獲的組? 問號后跟冒號(?:)是什么意思?

對於Az范圍,它不像a-zA-Z那樣起作用,請參閱字符類 您應該使用帶有標志iaz范圍,這意味着您忽略大小寫。

暫無
暫無

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

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