Регулярное выражение, которое соответствует только links
, равно
/^\s*\|links\s*?=\s*(.*)$/m
Это будет фиксировать значение ссылок в группу захвата 1, которую вы можете ссылаться как match[1]
. В JavaScript это выглядит так:
const str = `
{{Song box 2
|color = black; color:#D7DA5F
|image = Kokoropv.jpg
|title = "'''ココロ'''"
* Romaji: Kokoro
* Official English: Heart
|date = March 2, 2008
|views = {{v|nn|2,738,496}}
|singers = [[Kagamine Rin]] act1
|producers = [[Toraboruta-P]] (music, lyrics, illustration)
|links = {{l|nn|sm2500648}} {{l|mz|266689|defunct}}
|links = {{l|nn|sm2500648}} {{l|mz|266689|defunct}}
}}
`
const match = str.match(/^\s*\|links\s*?=\s*(.*)$/m)
const links = match && match[1]
console.log(links)
Расширенное решение
Лично я бы сделал более общее решение, которое анализирует этот список в объект и позволяет вам легко ссылаться на все ключи и значения по мере необходимости:
const getKeywordValuePairs = str => {
const pattern = /^\s*\|(.*?)\s*?=\s*(.*)$/gm
const result = {}
let match
while(match = pattern.exec(str)) {
const [unused, key, value] = match
result[key] = value
}
return result
}
const result = getKeywordValuePairs(`
{{Song box 2
|color = black; color:#D7DA5F
|image = Kokoropv.jpg
|title = "'''ココロ'''"
* Romaji: Kokoro
* Official English: Heart
|date = March 2, 2008
|views = {{v|nn|2,738,496}}
|singers = [[Kagamine Rin]] act1
|producers = [[Toraboruta-P]] (music, lyrics, illustration)
|links = {{l|nn|sm2500648}} {{l|mz|266689|defunct}}
|links = {{l|nn|sm2500648}} {{l|mz|266689|defunct}}
}}
`)
console.log(result)
console.log(result.links)