正如标题所示,如何将分隔符数组传递给 Regex.Split 函数?我需要用单词列表(也是字符串)分割句子(字符串)。
1 回答
largeQ
TA贡献2039条经验 获得超7个赞
您可以从“分隔符”单词构建正则表达式模式,如下所示:
var delim = new string[] {"fox", "lazy"};
var pattern = @"(?:\s|^)(?:" + string.Join("|", delim.Select(Regex.Escape)) + @")(?:\s|$)";
\s
开头和结尾处的字符串锚点可确保分隔符包含其周围的所有空白,并避免Scunthorpe 问题。使用Regex.Espace
可确保带有正则表达式元字符的分隔符不会破坏您的代码。
结果模式如下所示:
(?:\s|^)(?:fox|lazy)(?:\s|$)
如果您想在标记之间保留分隔符,请更改正则表达式以在前瞻/后瞻中使用它们:
var delimGroup = "(?:"+string.Join("|", delim.Select(Regex.Escape))+")";
var pattern = @"\s(?="+delimGroup+")|(?<="+delimGroup+@")\s";
- 1 回答
- 0 关注
- 89 浏览
添加回答
举报
0/150
提交
取消