regex - 在单引号和双引号之前添加反斜杠
问题描述
我正在尝试在单引号和双引号之前添加反斜杠。我遇到的问题是我想排除三引号。
我现在所做的是:
对于单引号:
sed -e s/\'/\\\\\'/g test.txt > test1.txt
双引号:
sed -e s/\"/\\\\\"/g test.txt > test1.txt
我有这样的文字:
1,"""Some text XM'SD12X""","""Some text XM'SD12X""","""Auto " Moto " Some text"Some text"""
我想要的是:
120,"""Some text\'SD12X""","""Some text XM\'SD12X""","""Auto \" Moto \" Some text\"Some text"""
解决方案
如果perl
没问题:
perl -pe 's/"{3}(*SKIP)(*F)|[\x27"]/\\$&/g'
"{3}(*SKIP)(*F)
不要更改三重双引号(\x27{3}|"{3})(*SKIP)(*F)
如果您不应该更改三重单/双引号,请使用
|[\x27"]
匹配单引号或双引号\\$&
\
匹配部分的前缀
使用 sed,您可以用换行符替换三引号(因为默认的逐行使用模式空间中不能出现换行符),然后替换单/双引号字符,然后将换行符改回三引号。
# assuming only triple double quotes are present
sed 's/"""/\n/g; s/[\x27"]/\\&/g; s/\n/"""/g'
推荐阅读
- ios - 由于 NSInvalidArgumentException - [_NSConcreteBlockSinkObservation superlayer] 错误,iOS 应用程序正在崩溃
- javascript - combineReducer 中使用的减速器的声纳代码气味
- angular - Angular 7 - 共享数据
- angular - Angular 2,primeng:在 *ngFor 中的 Primeng 中嵌套 *ngFor 和 ngModel 的两种方式绑定
- jqgrid - jqgrid从单元格值打开链接
- angular - 导航时刷新继承的组件
- android - 在 Android 的导航架构组件中将复杂对象作为参数传递
- javascript - 如何将 PDF blob 发送到 MVC 控制器
- python - 在蓝图 Flask 中获取 mongo 实例的正确方法
- c# - 如何获取相对于任何形式的 UIElement 的光标位置