Regex 当反斜杠不在文件中时,将其转义到文件中的位置';不要总是显得不可逃避
我遇到了一个特殊的情况,我正试图将一个CSV文件导入到Weka中,但我遇到了一个问题,Weka显然非常糟糕,无法以卫生的方式处理字符串 我已经在使用sed删除所有非ASCII字符,但现在我遇到了处理反斜杠的问题。我的输入在某些字段中包含转义反斜杠,在其他字段中包含非转义反斜杠(Weka无法正确处理)Regex 当反斜杠不在文件中时,将其转义到文件中的位置';不要总是显得不可逃避,regex,csv,sed,escaping,weka,Regex,Csv,Sed,Escaping,Weka,我遇到了一个特殊的情况,我正试图将一个CSV文件导入到Weka中,但我遇到了一个问题,Weka显然非常糟糕,无法以卫生的方式处理字符串 我已经在使用sed删除所有非ASCII字符,但现在我遇到了处理反斜杠的问题。我的输入在某些字段中包含转义反斜杠,在其他字段中包含非转义反斜杠(Weka无法正确处理) 我需要的是一个正则表达式,它将查找不在反斜杠前面或后面的反斜杠,并添加第二个反斜杠。我很难让语法正常工作,不知道是否有人能帮我。试试下面的-sed的/\\\/@/g;s/\\/\\\\\\\/g;s
我需要的是一个正则表达式,它将查找不在反斜杠前面或后面的反斜杠,并添加第二个反斜杠。我很难让语法正常工作,不知道是否有人能帮我。试试下面的-
sed的/\\\/@/g;s/\\/\\\\\\\/g;s/@@/\\\\/g'
它首先用标记替换转义反斜杠,转义单个反斜杠,并将标记更改回转义反斜杠
选择文件中不存在的标记
echo 'asdfj\lasdf\\asldf\oweur\\lasjd;lf\\lasjfl\asdfsdf' | \
sed 's/\\\\/@@_@/g; s/\\/\\\\/g; s/@@_@/\\\\/g'
结果:asdfj\\lasdf\\asldf\\oweur\\lasjd;lf\\lasjfl\\asdfsdf
另一个选项-
sed的/\([^\]\)\(\\\)\([^\\]\)/\1\3/g'
请粘贴您正在处理的文本或字符串的一部分好吗?第一个解决方案可能会得到改进,以避免字符串@
可能被错误替换为:s/\\n/g;s/\\/&&/g;s/\n/\\\/g'
第二种解决方案不适用于单个\`可能是行中的第一个或最后一个字符的边缘情况
sed-r的/(^\\\]\\([^\\]\$)/\1\2/g'`也迎合了这些需求。