我正在查看CSV文件,该文件在字段中间包含LF字符,而CRLF字符实际上表示新行。我在Sublime Text 3中以十六进制查看文件,我想在我搜索LF字符但不是CRLF的地方进行简单的查找和替换,并用空格替换它。
我已经到了搜索LF而不是CRLF,我可以使用正则表达式
[^0d]0a
。问题在于它没有捕获你可以拥有XX0d 0aXX并且我不知道如何用正则表达式捕获它的情况。然后我想用'20'替换它,这是十六进制的空格。
答案 0 :(得分:4)
使用与0d
匹配的负面lookbehind和可选的空格。
(?<!0d\s*)0a
然而,一些正则表达式引擎不允许使用量词视图。所以你可能需要在lookbehind之后进行空白检查,然后捕获它以在替换中使用它。
(?<!0d)(\s*)0a replace with ${1}20
如果您在文本模式而不是十六进制中执行此操作可能会更容易。取代
(?<!\r)\n
有空间。