Regex для удаления аккордов из текстового файла - PullRequest
0 голосов
/ 15 февраля 2011

У меня большой файл (около 20 тыс. Строк) музыки с аккордами.

Я пытаюсь создать программу для удаления аккордов из моего файла.

Мое регулярное выражение для поиска аккордов:

Regex regex = new Regex("([A-G](#|b)*([a-z]|[0-9])*)(/[A-G](#|b)*([a-z]|[0-9])*)*");

Проблема логическая.

Как определить, есть ли в моем тексте только аккорды с использованием моего регулярного выражения?

UPDATE: Образец файла:

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! 

Ответы [ 2 ]

2 голосов
/ 15 февраля 2011

Вы можете привязать свое регулярное выражение, обернув его в ^...$.
Это заставит его соответствовать целым строкам.

Затем вы можете просмотреть File.ReadLines, например:

var nonChords = File.ReadLines(path)
                    .Where(s => !regex.IsMatch(s));
1 голос
/ 15 февраля 2011

Как насчет этого:

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

Это удалит все строки, содержащие только буквы от A до G, #, b, /, - или пробелы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...