如何使用正则表达式替换字符串的一部分

杰亚德万

我正在尝试清理mongo数据库转储。我要替换字母数字字符后跟空格的所有'\“'。这是我到目前为止
sed -e 's/[a-zA-Z0-9]\\"/ /g' a.txt
拥有的问题是,此sed不仅替换了'\'',而且替换了紧接其前的一个字符。我想要输出'mystring'

维克多·史翠比维

您可以在正则表达式模式中使用捕获组,并\1在替换部分中使用占位符,以恢复字母数字字符:

sed -e 's/\([a-zA-Z0-9]\)\\"/\1 /g' a.txt
          ^^           ^^    ^^

您可以替换[a-zA-Z0-9][[:alnum:]],使正则表达式更加惯用([:alnum:]匹配所有字母数字字符)。

在线sed演示

s='mystring\"'
sed -e 's/\([a-zA-Z0-9]\)\\"/\1 /g' <<< "$s"
# => mystring
sed -e 's/\([[:alnum:]]\)\\"/\1 /g' <<< "$s"
# => mystring

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用正则表达式替换字符串的一部分

如何使用正则表达式替换字符串的一部分

使用正则表达式搜索,但仅用 sed 替换字符串的一部分

在Javascript中使用正则表达式替换html字符串的一部分

使用正则表达式屏蔽字符串的一部分

使用正则表达式匹配字符串的一部分

如何使用正则表达式在Java中处理字符串的一部分

如何使用正则表达式移动字符串的一部分

如何使用正则表达式提取字符串的一部分

如何使用正则表达式仅提取匹配字符串的一部分?

如何使用正则表达式返回字符串的一部分

Perl字符串替换:匹配但不替换正则表达式的一部分

如何在VBScript中使用正则表达式替换子字符串的一部分?

如何在scala中使用正则表达式模式匹配替换字符串的一部分?

正则表达式删除字符串的一部分,然后替换另一部分

正则表达式,总是在末尾替换字符串的一部分

用匹配的正则表达式的一部分替换字符串

跳过字符串的一部分,并用正则表达式替换匹配项

PHP查找并用正则表达式替换字符串的一部分

正则表达式,用于替换包含单引号(')的字符串的一部分

在Python中仅替换正则表达式字符串的一部分的方法

使用正则表达式在php中用字符串中的值搜索和替换字符串的一部分

正则表达式选择字符串的一部分

正则表达式匹配字符串的一部分

正则表达式不匹配字符串的一部分

用正则表达式屏蔽字符串的一部分

正则表达式匹配字符串的最后一部分

正则表达式保留字符串的一部分

正则表达式-获取字符串的一部分