如何将分隔符数组传递给 Regex.Split 函数?

正如标题所示,如何将分隔符数组传递给 Regex.Split 函数?我需要用单词列表(也是字符串)分割句子(字符串)。



慕田峪7331174
浏览 90回答 1
1回答

largeQ

您可以从“分隔符”单词构建正则表达式模式,如下所示:var delim = new string[] {"fox", "lazy"};var pattern =  @"(?:\s|^)(?:" + string.Join("|", delim.Select(Regex.Escape)) + @")(?:\s|$)";\s开头和结尾处的字符串锚点可确保分隔符包含其周围的所有空白,并避免Scunthorpe 问题。使用Regex.Espace可确保带有正则表达式元字符的分隔符不会破坏您的代码。结果模式如下所示:(?:\s|^)(?:fox|lazy)(?:\s|$)演示1如果您想在标记之间保留分隔符,请更改正则表达式以在前瞻/后瞻中使用它们:var delimGroup = "(?:"+string.Join("|", delim.Select(Regex.Escape))+")";var pattern =  @"\s(?="+delimGroup+")|(?<="+delimGroup+@")\s";演示2
打开App,查看更多内容
随时随地看视频慕课网APP