【发布时间】:2022-01-25 03:18:11
【问题描述】:
我在 SO 的另一篇文章中发现了这个正则表达式
\b(\(*[CDEFGAB](?:b|bb)*(?:\+|#|##|dim|sus|maj|min|aug|m|M|°|[0-9])*[\(]?[\d\/]*[\)]?(?:[CDEFGAB](?:b|bb)*(?:#|##|dim|sus|maj|min|aug|m|M|°|[0-9])*[\d\/]*)*\)*)\b
当我将它与preg_replace 一起使用时,这个正则表达式效果很好,但是当它找到A# B# C# D# E# E# F# G# 时(不跟m 类似G#m,在这种情况下 G#m 工作得很好)。
例如,当我在preg_replace($regex, '<span class="_c">$1</span>', $lyrics) 中使用正则表达式时,以下歌词将突出显示F 和G#m
F#
Angel eyes,
G#m
Why won’t you let me apologise?
我被卡住了,而且不太擅长正则表达式。任何帮助,将不胜感激。 提前致谢
【问题讨论】:
-
对不起,我对音乐一无所知。应该发生什么?是
#匹配为非单词边界的问题吗?