首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Regex用于从文本文件中删除和弦

Regex用于从文本文件中删除和弦
EN

Stack Overflow用户
提问于 2011-02-16 01:02:43
回答 2查看 264关注 0票数 0

我有一个很大的音乐文件(大约20k行),里面有和弦。

我正在试着写一个程序把和弦从我的文件中删除。

我查找和弦的正则表达式是:

代码语言:javascript
复制
Regex regex = new Regex("([A-G](#|b)*([a-z]|[0-9])*)(/[A-G](#|b)*([a-z]|[0-9])*)*");

这个问题是一个逻辑问题。

如何使用正则表达式检测一行文本是否只有和弦?

更新:文件示例:

代码语言:javascript
复制
C                                     G 
Justo é o Senhor em seus santos caminhos, 
A -             G/B C     D4 D G 
Benigno em todas  as  suas  obras.  (bis) 
G          C          C7 
Perto está  o Senhor, (perto está dos que o invocam,) 
     F   C  D -   G  C               F        G         C F  
De todos que o invocam  (De todos que o invocam) 
C/G G   C                        F C 
Em   verdade. Aleluia! Aleluia! 
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-02-16 02:25:39

这样如何:

代码语言:javascript
复制
resultString = Regex.Replace(subjectString, @"^[A-G\d#b\s/-]*$(?:\r\n)?", "", RegexOptions.Multiline);

这将删除仅包含字母A到G、#b/-或空格的所有行。

票数 1
EN

Stack Overflow用户

发布于 2011-02-16 01:08:28

您可以通过将正则表达式包装在^...$中来锚定它。

这将强制它匹配整个行。

然后,您可以遍历File.ReadLines,如下所示:

代码语言:javascript
复制
var nonChords = File.ReadLines(path)
                    .Where(s => !regex.IsMatch(s));
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5006852

复制
相关文章

相似问题

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