由于尖锐 (#) 字符,javascript 正则表达式捕获中缺少字符
Missing character in javascript regexp capture because of sharp (#) character
在表达式中:/^(C|Db|D|Eb|E|F|F#|G|Ab|A|Bb|B)(.*)$/
,Cm7
将有两个捕获组:C
和m7
。 Eb-^9
将具有捕获组 Eb
和 -^9
.
为什么 F#maj7
被捕获为 F
和 #maj7
而不是 F#
和 maj7
?我试图逃避尖锐的性格无济于事。 String.prototype.match
和 String.prototype.split
都给出相同的结果,以及 regexr itself
这是正则表达式引擎中的错误吗?
我能够通过切换 F
和 F#
来让它工作,因为顺序意味着它在 F#
.[=16= 之前寻找 F
]
这似乎对我有用:
/^(C|Db|D|Eb|E|F#|F|G|Ab|A|Bb|B)(.*)$/
这里是 example.
在表达式中:/^(C|Db|D|Eb|E|F|F#|G|Ab|A|Bb|B)(.*)$/
,Cm7
将有两个捕获组:C
和m7
。 Eb-^9
将具有捕获组 Eb
和 -^9
.
为什么 F#maj7
被捕获为 F
和 #maj7
而不是 F#
和 maj7
?我试图逃避尖锐的性格无济于事。 String.prototype.match
和 String.prototype.split
都给出相同的结果,以及 regexr itself
这是正则表达式引擎中的错误吗?
我能够通过切换 F
和 F#
来让它工作,因为顺序意味着它在 F#
.[=16= 之前寻找 F
]
这似乎对我有用:
/^(C|Db|D|Eb|E|F#|F|G|Ab|A|Bb|B)(.*)$/
这里是 example.