由于尖锐 (#) 字符,javascript 正则表达式捕获中缺少字符

Missing character in javascript regexp capture because of sharp (#) character

在表达式中:/^(C|Db|D|Eb|E|F|F#|G|Ab|A|Bb|B)(.*)$/Cm7 将有两个捕获组:Cm7Eb-^9 将具有捕获组 Eb-^9.

为什么 F#maj7 被捕获为 F#maj7 而不是 F#maj7?我试图逃避尖锐的性格无济于事。 String.prototype.matchString.prototype.split 都给出相同的结果,以及 regexr itself

这是正则表达式引擎中的错误吗?

我能够通过切换 FF# 来让它工作,因为顺序意味着它在 F#.[=16= 之前寻找 F ]

这似乎对我有用:

/^(C|Db|D|Eb|E|F#|F|G|Ab|A|Bb|B)(.*)$/

这里是 example.