我根本不自称是RegEx大师,我对这句话的作用感到有些困惑。我正在尝试进行重构,这是在按键上调用并占用大量CPU。
Regex.Replace(_textBox.Text, "(?<!\r)\n", Environment.NewLine);
感谢。
答案 0 :(得分:8)
正则表达式(?<!\r)\n
将匹配不在\n
字符之前的任何\r
字符。语法(?<!
expr
)
为negative look-behind assertion,表示 expr
必须不匹配当前位置之前的部分。
答案 1 :(得分:1)
它正在用一个带有Environment.NewLine字符串的\ _ \ n前面的\ n替换每个实例。此字符串是特定于平台的换行符(在Windows上,它将是字符串“\ r \ n”)
答案 2 :(得分:1)
除了解释正则表达式做什么的答案(在没有\ r之前匹配所有\ n之前),我只想指出使用Replace()很可能永远不需要,除非你有打字的用户只是在某种程度上打字。即使这样,你可能也不需要在按键上使用它,就像使用整个文本时一样(即以某种方式提交数据之后)。
如果放在那里清理复制粘贴的文本,那么你可以将它重构为仅在大量文本被更改时运行。
答案 3 :(得分:0)