[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
回复 2# Five66


    问题一: 两段是不是:"s#(jar:file:\/\/\/)[^^,]+(profiles\/extensions|browser\/features)\/#\1%firefox:\=/%\2#gi" "extensions.json" 这两段?

    问题二:第二个中的
               "s#(\"path\":\")[^^,]+(profiles\\\\extensions^|browser\\\\features)#\1%firefox:\=\\\\%\2#gi"
               应该是被bat当成了
               s#(\"path\":\")[^^,]+(profiles\\\\extensions^|browser\\\\features)#\1%firefox:\=\\\\\2#gi
         是解释器去掉引号了吗?为什么一对比,好像不光这样,第二句比第一句还少了个%,以及如果是这种说法,猜想,或者机制的话,那"s#(jar:file:\/\/\/)[^^,]+(profiles\/extensions|browser\/features)\/#\1%firefox:\=/%\2#gi" "extensions.json" 不也会被去掉双引号,而|符被当成管道符吗?

TOP

回复  GNGW


    可以这样理解:
一般来说,双引号一般会成对出现,被 "双引号对" 包裹的字符串,其中 ...
WHY 发表于 2024-3-20 22:23



    那这样说的话,最后一个双引号和谁配对?没有配对也没有转义,解释器不会报语法错误?

TOP

回复 8# Five66


    "s#(\"path\":\")[^^,]+(profiles\\\\extensions^|browser\\\\features)#\1%firefox:\=\\\\%\2#gi"
               应该是被bat当成了
               s#(\"path\":\")[^^,]+(profiles\\\\extensions^|browser\\\\features)#\1%firefox:\=\\\\\2#gi

我是说在您的回复中同样的位置,第一行和第二行对比是不是少了个%这是您没打字没打上,还是说蓄意为之。如果是的话,这又是什么语法,为什么解释器要去掉%?还有根据您上一次的回答这个答案中,如果规则中去掉最外围的双引号后,在
s#(\"path\":\")[^^,]+(profiles\\\\extensions^|browser\\\\features)#\1%firefox:\=\\\\\2#gi 还是有一个双引号没被配对。

TOP

回复 13# Five66


    所以根据这个结论,为什么要有两个转义字符?它们的作用范围或者说使用场景是不是不同?如何分别和搭配使用?
吹毛求疵的人,找问题的人,好奇心强的人,动手能力强的人,虚心的人,以及一个简单的研究技术的人。

TOP

回复  Five66

第一个sed是奇数,第二个sed是偶数。
    所以在|前有奇数个双引号时,|前不需要加^。
kidzgy 发表于 2023-8-8 16:07



    这个原因是因为预处理机制,在没有开延迟变量扩展的时候,在双引号的时候视为转义,(希望不要误解到你,这是我了解到的,不保证一定准确性,但肯定是双符号是转义),比如%%可以视为转义,\\,^^,“”,还有很多,http://www.bathome.net/redirect. ... 8649&pid=279265 我把帖子贴在这里,注意,帖子里的有些内容机制我也没有搞懂,所以分析之后可以跟帖纠正,或者补充,
吹毛求疵的人,找问题的人,好奇心强的人,动手能力强的人,虚心的人,以及一个简单的研究技术的人。

TOP

返回列表