Как я могу объединить несколько строк Regex в одну? - PullRequest
0 голосов
/ 27 октября 2019

В моем коде есть пять разных строк Regex:

            Regex regex = new Regex(@"(\n  )?\[see=[^\]]*\]]");

            phraseSources
                .ToList()
                .ForEach(item => item.JmdictMeaning = regex.Replace(item.JmdictMeaning, ""));

            regex = new Regex(@"(\n  )?\[note=[^\]]*\]");

            phraseSources
                .ToList()
                .ForEach(item => item.JmdictMeaning = regex.Replace(item.JmdictMeaning, ""));

            regex = new Regex(@"(\n  )?\[restr=[^\]]*\]");

            phraseSources
                .ToList()
                .ForEach(item => item.JmdictMeaning = regex.Replace(item.JmdictMeaning, ""));

            regex = new Regex(@"(\n  )?\[ant=[^\]]*\]");

            phraseSources
                .ToList()
                .ForEach(item => item.JmdictMeaning = regex.Replace(item.JmdictMeaning, ""));

            regex = new Regex(@"(\n  )?\[syn=[^\]]*\]");

            phraseSources
                .ToList()
                .ForEach(item => item.JmdictMeaning = regex.Replace(item.JmdictMeaning, ""));

Есть ли способ объединить их в одно Regex?

Ответы [ 2 ]

1 голос
/ 27 октября 2019

Вы можете использовать или оператор внутри внутренней группы

(\n  )?\[((see|note|ant|restr|syn)=[^\]]*)\]

https://regex101.com/r/CyHvNh/1

0 голосов
/ 27 октября 2019

Используйте |оператор и группа все с парентезом ()

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