regex - 正则表达式 - 替换前面的 if 字符不是 x

标签 regex sed

菜鸟问题。

如果@之前的字符不是”,我想用”,”替换所有@ >

要增加此命令cat foo.csv | sed 's/@/","/g'

最佳答案

你可以使用

sed -r 's/(^|[^"])@/\1","/g'

其中 (^|[^"]) 是匹配行开头或除 " 之外的字符的组。 \1 是对 Group 1 的反向引用(空字符串或与 [^"] 括号表达式匹配的字符)。

有关不带 -r 的替代语法,请参阅 Kent's comment (您需要对 (, )| 等特殊字符进行转义,以便它们充当特殊的正则表达式元字符)。

关于regex - 正则表达式 - 替换前面的 if 字符不是 x,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37860520/

相关文章:

PHP preg_replace 将 **xyz** 转换为 <b>xyz</b>

java - (重新)使用 DateTimeFormatter 解析日期范围或将 DateTimeFormatter 与正则表达式混合

perl - 如何在100个文本文件上的 'search and replace'上以20k项执行最小磁盘I/O(每个行有5万行)

bash - sed:替换主机文件中的 ip,使用主机名作为模式

php - SED 命令 : won't insert the string I want

c++ - 如何显示功能的开始,结束行和功能体?

c++ - regex_replace,为什么它会丢失 $1?

python - 在 python 中转换文本

regex - 替换文件中最后一次出现的字符串

regex - 正则表达式匹配以 1 开头的九位数字