我有字符串: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);
Run Code Online (Sandbox Code Playgroud)
要么
您可以匹配所有标点符号或字母表,然后将匹配的字符串附加到列表中.
@"\p{P}|\p{L}+"
Run Code Online (Sandbox Code Playgroud)
\p{P}匹配任何类型的标点符号,并p{L}匹配任何语言的任何类型的字母.