如何在 vi 中用特殊字符替换字符串?
How can I replace a string with special characters in vi?
如何在 vi 中用 8!fifHsgx 替换所有出现的字符串 zUe*ES33Na?
我尝试使用 :%s/zUe*ES33Na/8!fifHsgx/g 但它说替换模式匹配失败。
我感觉是因为有 'special' 个字符我正在尝试搜索或替换。
基本上有没有办法指示 vi 将字符解释为搜索字符而不是特殊字符?
这是为了编辑一个包含密码的文件。
我在尝试用 AAAAAA 之类的简单字符串替换上面的第一个字符串时遇到了同样的错误:
:%s/zUe*ES33Na/AAAAAA/g
所以我感觉 * 导致了错误。
我是否必须对 * 进行转义,或者我能否以某种方式指示 vi 不要将其解释为包含特殊字符,例如,用引号将其括起来?
使用\
转义字符
:%s/zUe\*ES33Na/8!fifHsgx/g
是的,是 *
。
当您在 Vi 中搜索时,您是在搜索正则表达式。这通常看起来像一个常规字符串 (%s/asdf/hjkl
),但它是一个恰好只匹配普通文本的正则表达式。如果您输入用于表示 *
或 .
之类的特殊字符,它将相应地执行。
你要做的就是用反斜杠转义它,把它变成一个普通的字符。
%s/zUe\*ES33Na/8!fifHsgx/g
请注意,只有第一部分受正则表达式字符的影响,因为用正则表达式替换某些内容是没有意义的。第二部分把一切都当成普通角色。
如何在 vi 中用 8!fifHsgx 替换所有出现的字符串 zUe*ES33Na?
我尝试使用 :%s/zUe*ES33Na/8!fifHsgx/g 但它说替换模式匹配失败。
我感觉是因为有 'special' 个字符我正在尝试搜索或替换。
基本上有没有办法指示 vi 将字符解释为搜索字符而不是特殊字符?
这是为了编辑一个包含密码的文件。
我在尝试用 AAAAAA 之类的简单字符串替换上面的第一个字符串时遇到了同样的错误:
:%s/zUe*ES33Na/AAAAAA/g
所以我感觉 * 导致了错误。
我是否必须对 * 进行转义,或者我能否以某种方式指示 vi 不要将其解释为包含特殊字符,例如,用引号将其括起来?
使用\
转义字符
:%s/zUe\*ES33Na/8!fifHsgx/g
是的,是 *
。
当您在 Vi 中搜索时,您是在搜索正则表达式。这通常看起来像一个常规字符串 (%s/asdf/hjkl
),但它是一个恰好只匹配普通文本的正则表达式。如果您输入用于表示 *
或 .
之类的特殊字符,它将相应地执行。
你要做的就是用反斜杠转义它,把它变成一个普通的字符。
%s/zUe\*ES33Na/8!fifHsgx/g
请注意,只有第一部分受正则表达式字符的影响,因为用正则表达式替换某些内容是没有意义的。第二部分把一切都当成普通角色。