拆分为“”,除非有一些单词集合

时间:2013-05-07 02:27:51

标签: c# string

我正在尝试制作一个首字母缩略词。这个想法是,如果我用“美利坚合众国”字符串喂我,我将得到三个字符串的数组,“美国”,“美国”,“美国”。

然后我将显示它们垂直堆叠,第一个字母用粗体表示:

U nited

S tates of

A merica

这样做的好方法是什么?我假设它涉及某种分裂,并且包含常见单词的字符串数组,例如“of,a,if,then”等......

2 个答案:

答案 0 :(得分:4)

使用这样的正则表达式:

Regex.Split(str, " (?!of|a|if)");

现场演示:http://ideone.com/KdQnfZ

正如社区在评论中提出的那样 - 你可以用空格分隔后跟一个以大写字母开头的单词,如

Regex.Split(str, " (?=[A-Z])")

答案 1 :(得分:1)

如果你能够使用正则表达式,只要内部组(in和one)填充了所有的异常单词,([a-zA-Z]+ ?(of|in|and)?)之类的表达式就会起作用。