我如何将多个Regex字符串组合为一个?

问题描述 投票:0回答:2

我的代码有五个不同的正则表达式字符串:

            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个回答
0
投票

使用|运算符并使用括号()进行分组


0
投票

您可以在内部组中使用或操作员

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

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

© www.soinside.com 2019 - 2024. All rights reserved.