我想使用正则表达式来转换这些:
<input type="text" name="salutation" value={salutation} />
<input type="text" name="first_name" value={first_name} />
变成这些:
<input type="text" name="salutation" value="" />
<input type="text" name="first_name" value="" />
因此在 VIM 中,我尝试了以下所有命令:
:0,$s/value={.+}/value=""/gc
:0,$s/value={(.)+}/value=""/gc
:0,$s/value={[a-zA-Z0-9_\.]+}/value=""/gc
:0,$s/value={[^}]+}/value=""/gc
但我一直收到消息“未找到图案”。我做错了什么?
答案1
答案2
你的正则表达式实际上是这样做的:
:0,$s/value={.+}/value=""/gc
=重复字符串“{.+}“ 值为“”
:0,$s/value={(.)+}/value=""/gc
= 重复字符串“{(.)+}“ 值为“”
:0,$s/value={[a-zA-Z0-9_\.]+}/value=""/gc
=重复字符串“{X+}“ 值为“” 其中X是 [] 内的任意字符范围
:0,$s/value={[^}]+}/value=""/gc
=重复字符串“{X+}“ 值为“” 其中X不是字符 '}'
因此,如果您打算使用“+”作为量词,则应使用“\+”。否则,就像在所有模式中一样,搜索的是实际的“+”,而不是1 个或多个前面的字符