string line = @"George\t15\tStudent\tAddress\tB:\temp\profilepic.png";
string[] results = Regex.Split( line, @"(?<![a-zA-Z]:)\\t" )
它产生这个列表:
George
15
Student
Address
B:\temp\profilepic.png
但我无法理解它是如何工作的,尤其是我找不到有关“<”运算符的信息。
<
在这种情况下,它本身不是运算符。它是 (?<!)
构造的一部分,它执行负面的lookbehind。负向后看可能是一个棘手的概念,我个人认为它属于“高级正则表达式”的范畴。
(?<!
开始组并)
关闭它。
?<!
是一个否定的后向断言。此表达式转换为“查找一个\t
不紧跟在字母和冒号前面的字符”。