精华内容
下载资源
问答
  • 一、问题因为前文提到工作中需要使用 Go 调 Python 脚本执行加解密,但是 Go 那边执行命令行输出的是 str 类型。...old_bytes = b"=\x1di\xab\xc1~)]9H\xdf\x0c\x7f`f&'\xfbooX}kX\x0e~D\x9d\x88\x83\x0f\...

    一、问题

    因为前文提到工作中需要使用 Go 调 Python 脚本执行加解密,但是 Go 那边执行命令行输出的是 str 类型。因此需要转回 bytes 进行解密,但是发现转回 bytes 和原来的不一样。下面以一个小例子做演示。

    old_bytes = b"=\x1di\xab\xc1~)]9H\xdf\x0c\x7f`f&'\xfbooX}kX\x0e~D\x9d\x88\x83\x0f\xb8\xe7\xf6\x0f+\x97\xfc8+\xe5\xd4\xb9uC\xc0\xcdh\xa2S=|\xb5\xf9\xc59\xc0R#\xfaGR\xddMa\x8e\x9cS\xf9\xcdq\xbd\xb8_\x94\xa2\x8e\x13I\xbc\x0e\xcf\x82\xeeG\x85\xafBj\xe9\x0e\xd7\xd9\x0fj\x15\x06IY\xaf\xde\xee" # 这是bytes类型

    old_str = str(old_bytes) # 这是str类型

    new_bytes = bytes(old_str, encoding="utf-8") # 这是bytes类型

    print(new_bytes)

    print(new_bytes == old_bytes)

    输出:

    b'b"=\\x1di\\xab\\xc1~)]9H\\xdf\\x0c\\x7f`f&\'\\xfbooX}kX\\x0e~D\\x9d\\x88\\x83\\x0f\\xb8\\xe7\\xf6\\x0f+\\x97\\xfc8+\\xe5\\xd4\\xb9uC\\xc0\\xcdh\\xa2S=|\\xb5\\xf9\\xc59\\xc0R#\\xfaGR\\xddMa\\x8e\\x9cS\\xf9\\xcdq\\xbd\\xb8_\\x94\\xa2\\x8e\\x13I\\xbc\\x0e\\xcf\\x82\\xeeG\\x85\\xafBj\\xe9\\x0e\\xd7\\xd9\\x0fj\\x15\\x06IY\\xaf\\xde\\xee"'

    False

    可以看到,bytes 经过 str 强制类型转换之后再转回 bytes,会发现和原来的不一样。结果多了 b',以及 \ 变成了 \\。

    二、解决方法

    使用切片截掉开头的 b',使用 codecs.escape_decode 来进行反斜杠转换。

    old_bytes = b"=\x1di\xab\xc1~)]9H\xdf\x0c\x7f`f&'\xfbooX}kX\x0e~D\x9d\x88\x83\x0f\xb8\xe7\xf6\x0f+\x97\xfc8+\xe5\xd4\xb9uC\xc0\xcdh\xa2S=|\xb5\xf9\xc59\xc0R#\xfaGR\xddMa\x8e\x9cS\xf9\xcdq\xbd\xb8_\x94\xa2\x8e\x13I\xbc\x0e\xcf\x82\xeeG\x85\xafBj\xe9\x0e\xd7\xd9\x0fj\x15\x06IY\xaf\xde\xee" # 这是bytes类型

    old_str = str(old_bytes) # 这是str类型

    new_bytes = bytes(old_str[2:-1], encoding="utf-8") # 这是bytes类型

    import codecs

    original = codecs.escape_decode(new_bytes, "hex-escape")

    print(old_bytes, original)

    print(original[0] == old_bytes)

    输出:

    b"=\x1di\xab\xc1~)]9H\xdf\x0c\x7f`f&'\xfbooX}kX\x0e~D\x9d\x88\x83\x0f\xb8\xe7\xf6\x0f+\x97\xfc8+\xe5\xd4\xb9uC\xc0\xcdh\xa2S=|\xb5\xf9\xc59\xc0R#\xfaGR\xddMa\x8e\x9cS\xf9\xcdq\xbd\xb8_\x94\xa2\x8e\x13I\xbc\x0e\xcf\x82\xeeG\x85\xafBj\xe9\x0e\xd7\xd9\x0fj\x15\x06IY\xaf\xde\xee" (b"=\x1di\xab\xc1~)]9H\xdf\x0c\x7f`f&'\xfbooX}kX\x0e~D\x9d\x88\x83\x0f\xb8\xe7\xf6\x0f+\x97\xfc8+\xe5\xd4\xb9uC\xc0\xcdh\xa2S=|\xb5\xf9\xc59\xc0R#\xfaGR\xddMa\x8e\x9cS\xf9\xcdq\xbd\xb8_\x94\xa2\x8e\x13I\xbc\x0e\xcf\x82\xeeG\x85\xafBj\xe9\x0e\xd7\xd9\x0fj\x15\x06IY\xaf\xde\xee", 273)

    True

    发现成功转换回原来的 bytes 内容。

    三、参考

    展开全文
  • 这里是一点小心得:由于下面两个原因,在正则表达式中使用反斜杠就会产生了一个双重转换的问题。 (1)、python自身处理字符串时,反斜杠是用于转义字符 (2)、正则表达式也使用反斜杠来转义字符 转义字符 描述...

    这里是一点小心得:由于下面两个原因,在正则表达式中使用反斜杠就会产生了一个双重转换的问题。

     (1)、python自身处理字符串时,反斜杠是用于转义字符

     (2)、正则表达式也使用反斜杠来转义字符

     

    转义字符 描述
    \(处于行尾位置) 续行符
    \\\\ 反斜杠
    单引号
    \" 双引号
    \b 退格
    \n 换行
    \v 纵向制表符
    \t 横向制表符
    \r 回车
    \f 换页

     

        要匹配字符串中1个反斜杠应该怎么写正则表达式?

    "\\",这样行吗?试试就知道了,re模块抛异常了,因为在正则表达式中,"\\"代表一个反斜杠,对于正则表达式解析器来说,是一个转义字符,但是后面啥也没有,自然就报错了。所以“\\” 将取消 “\” 的转义作用

    "\\\"三个肯定是不行的,前面两个反斜杠取消转义,而后面一个反斜杠具备转义功能,所以三个反斜杠的前面两个反斜杠相当于一个不具备转义功能的反斜杠,最后一个反斜杠是一个转义反斜杠,

    试试四个"\\\\",完美匹配。双重取消转义,其等价于“\\”,但是这里的“\\”不具备转义功能 

     

     

    展开全文
  • js 反斜杠 处理

    2019-10-09 08:44:54
    var t = jsonstr.replace(/\\/g,"\\\\\\\\");... 和号 \\ 反斜杠 \n 换行符 \r 回车符 \t 制表符 \b 退格符 \f 换页符 1个 反斜杠 2个反斜杠 3个反斜杠 4个反斜杠 总...
     var t =  jsonstr.replace(/\\/g,"\\\\\\\\");      --\\ 表示

     

    代码 输出 \' 单引号 \" 双引号 \& 和号 \\ 反斜杠 \n 换行符 \r 回车符 \t 制表符 \b 退格符 \f 换页符

     

     

      1个 反斜杠

    2个反斜杠

    3个反斜杠

    4个反斜杠

     

     

    总结  字符串 中出现 两个斜杠, js 自动转义为1个斜杠;

    1个斜杠  转 json对象时候 报错 是因为 就是报错。。。。。

     var json_str = '{"code": 0,"msg": "","data":"\\a.png"}';
     var json_str =  json_str.replace(/\\/g,"\\\\");
     
     var e = JSON.parse(json_str);

     

    转载于:https://www.cnblogs.com/enych/p/11571358.html

    展开全文
  • js将字符串中所有反斜杠\替换成正斜杠/ 区分正斜杠与反斜杠: 正斜杠:http://。http紧跟着的斜杠,离手输入最近的斜杠,shift中间斜杠。45度角斜杠。正斜杠不需要转义 反斜杠:回车与空格之间。程序表示时...

    js将字符串中所有反斜杠\替换成正斜杠/

    区分正斜杠与反斜杠:

    正斜杠:http://。http紧跟着的斜杠,离手输入最近的斜杠,shift中间斜杠。45度角斜杠。正斜杠不需要转义

    反斜杠:回车与空格之间。程序表示时需要转义成\\。

    str.replace(/\\/,/);

     

    1》要想定义字符串a\b\c需要这样写var str = "a\\b\\c";

    2》alert(str.replace(/\\/g,"/"));将a\b\c 修改为a/b/c

                        var str = "a\\b\\c";
                        alert(str);
                        alert(str.replace(/\\/g,"/"));

    转载于:https://www.cnblogs.com/yyzyou/p/6638162.html

    展开全文
  • 1、正斜杠替换为反斜杠 现有字符换如下: var str='C:/adf/jfjaj/55645/fad/abcd.png'; (1)只替换第一个,且替换为单反斜杠,不加 /g 会只替换第一个匹配到的 str.replace(/\//,'\\'); (2)替换全部,且...
  • 去掉反斜杠

    千次阅读 2016-10-21 20:29:19
    string a="0\0 ";  string b=a.Replace("\\","");//去不掉  string c = a.Replace("\0", "");//用次方式去处 反斜杠
  • python反斜杠换行

    2021-03-17 18:04:00
    #在python中反斜杠\ 表示的是使代码自动换行 可以连续使用 #换行之后和写在一行的功能是一致的 a =100 b = a +1 +\ 2 + 3 c=a+b+\ 4 + 5 +6 + \ 7+8+9+ \ 10 print("{}".format(b)) print(c)
  • 1 理清斜杠还是反斜杠 1.1 如何选用 (1)反斜杠\只有Windows系统中使用 Windows使用 斜杠/ 作为DOS命令提示符的参数标志了,为了不混淆,所以采用 反斜杠\ 作为路径分隔符。 dir /s /b //命令行参数 (2)斜杠/在...
  • 也可以采用"replace("\\", "")"用于执行多次"toString()"方法产生多余的斜杠 //s33——"{ID:99d2a341-ea2e-4f04-b4f4-623153d64336,Name:王五,TotalScores:80,工作效率:B,职业道德:B,业务能力:A,链接自律:B,工作...
  • js将字符串中所有反斜杠\替换成正斜杠/ 区分正斜杠与反斜杠: 正斜杠:http://。http紧跟着的斜杠,离手输入最近的斜杠,shift中间斜杠。45度角斜杠。正斜杠不需要转义 反斜杠:回车与空格之间。程序...
  • js替换字符中的斜杠反斜杠 var reg=/\\|\//g; var a="a\a\\a/b" alert(a.replace(reg,"-")); posted @ 2016-05-13 18:01 wavemelody 阅读(......
  • 1) 用在宏定义中: #define CV_ARE_SIZES_EQ(mat1, mat2) \ ...如:“\n”表示换行符,”\t” “\b”等,此时反斜杠表示转义,执行反斜杠后面的符号表示的意思。 但若要取反斜杠的本意,则需要在反斜杠
  • I've got a problem. I've this string:a=O\x8c\x90\x05\xa1\...\xbeIf i use:c=str.encode(a)This is the result:b'O\\x8c\\x90\\x05\\xa1\\xe2!\\xbe'I need those double backslash to be single backslash and ...
  • Python中的多行语句可以使用反斜杠来实现的答案与解析↓↓本题答案和解析请扫描下面二维码↓↓以下为相关问题与答案和解析化粪池的有效容积按污水在化粪池中停留时间计算,不宜小于( )。A:6~8hB:12~24hC:36~48hD...
  • js 反斜杠

    2015-07-04 14:13:00
    vara='abc\\cba\\'; varb='\\\\'; alert(a.replace(/\\/g,b)); 转载于:https://www.cnblogs.com/baixc/p/4620613.html
  • 一、前言基于Spring MVC的org.springframework.ui.ModelMap数据返回类型,写出JSON字符串后打印显示串带有斜杠\,造成前端H5接口无法正常按照JSON格式显示,效果如下图所示,现在需要将其中的反斜杠\去掉{\"name\":\...
  • 正则表达式双反斜杠

    2019-09-28 07:32:26
    new RegExp("\\b" + e.value + "\\b").test(rights) 创建 RegExp 对象的语法: new RegExp(pattern, attributes); 参数 参数pattern是一个字符串,指定了正则表达式的模式或其他正则表达式。 参数attributes...
  • 反斜杠,也称右斜杠,符号是”\”。 绝对路径,从根目录为起点到你所在的目录; 相对路径,从一个目录为起点到你所在的目录。 绝对路径: C:\A文件夹 相对路径(如果你在B文件夹时): ..\B文件夹 (‘..\’向上...
  • 唯一的概念是在MySQL查询中使用多个反斜杠。以下示例将使其更加清晰-下表具有诸如“ a \ b”和“ a \\ b”的值。mysql>select*frombackslashes;+------+-------+|Id|Value|+------+-------+|1|200||2|300|...
  • C#中反斜杠\与斜杠/ 转移字符 路径的问题在C#中 \ 是转义字符,如下所示转义序列 字符 \’ 单引号 \” 双引号 \\ 反斜杠 \0 空 \a 警告 \b 退格 \f 换页 \n 换行 \r...
  • java斜杠“/”转反斜杠“\”

    千次阅读 2019-06-03 16:18:02
    public static void main(String[] args) { String b = "d:/aa/a.txt"; ...自己在获取文件创建时间时遇到的路径问题,斜杠时创建时间始终为空,需要转换为 d:\aa\a.txt,写例子的时候一般是:...
  • php如何打印反斜杠

    2016-04-13 13:54:55
    <p>It prints <code>B\lB\lAn</code> instead of <code>B\lB\\lAn</code></p> <p>and <code>addslashes($input)</code> prints <code>B\\lB\\lAn</code></p> <p>how can I print <code>B\lB\\lAn</code>? <p>...
  • 解决方法:将转义符"\"增加为"\\",如果字符串str含有反斜杠,那么 str=str.replaceAll("\\\\", "\\\\\\\\"); 参考 String b="a\b"; b=b.replaceAll("\\\\", "\\\\\\\\"); System.out.println(b);

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,081
精华内容 832
关键字:

反斜杠b