我有一个字符串:IDLIST, ID NAME;
。并且需要将其转换为列表:{"IDLIST", ",", "ID", "NAME", ";"}
。
很明显,如何用空格分割字符串,但如何处理标点符号呢?
单词可以是任何一组字母。标点符号也可以是任意的。
您可以使用下面的Regex.Split
函数,
string value = "IDLIST, ID NAME;";
string[] lines = Regex.Split(value, @"s+|(?!^)(?=p{P})|(?<=p{P})(?!$)");
foreach (string line in lines) {
Console.WriteLine(line);
演示
或
您可以匹配所有的标点符号或字母,然后将匹配的字符串附加到列表中。
@"p{P}|p{L}+"
演示
p{P}
匹配任何类型的标点符号,p{L}
匹配任何语言的任何类型的字母。