首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将散列字符(#)与正则表达式进行匹配

将散列字符(#)与正则表达式进行匹配
EN

Stack Overflow用户
提问于 2011-02-03 18:22:54
回答 1查看 21.4K关注 0票数 4

我有一个包含正则表达式的XML文档(所以您不需要转义)。基本上,我正在尝试匹配音乐和弦符号,这个正则表达式工作得很好,但拒绝匹配散列:

代码语言:javascript
复制
\b[A-G](m|b|\#|sus|\d)*?\b
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-02-03 18:27:36

问题是,单词边界锚点\b只在字母数字和非字母数字字符之间匹配,所以它不会在#之后匹配(除非它本身后面跟着一个字母数字)。

使用

代码语言:javascript
复制
\b[A-G](?:m|b|#|sus|\d)*(?:\b|(?<=#))

也不需要逃避#

编辑:更改了正则表达式,以更好地再现预期的功能(正如我认为的那样)

但是,目前您还没有匹配到某些和弦;下面呢

代码语言:javascript
复制
\b[A-G](?:add|maj|j|m|-|b|#|sus|\d|°)*(?:\b|(?<=[#°-]))

这样,您就可以匹配所有这些内容:

代码语言:javascript
复制
A7
Abm7 
A#m7sus4
A7b9#13
Amaj7#11
A#°
Abj7add13

不过,我想还有改进的余地。

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4884915

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档