簡體   English   中英

為什么沒有按照 replace() 語句替換所有反斜杠?

[英]Why aren't all the backslashes being replaced as per replace() statement?

我正在嘗試用雙反斜杠替換反斜杠(從此折線)。

我的腳本:

txt = "qnkyHbgFYhBi@lFA|@Dz@K~@Oz@An@Dz@A|@D|@M|BJZd@KDHRzBf@lMNrBB~@Lz@\h@^`@Lt@?L]`@GH?FJl@Xl@NNLXVpBHV^LZf@Jt@@j@Kx@OjB@l@b@ZJDv@d@`@RXFp@\Zl@d@|Ad@`@jAzBf@nATn@\xAD~@Jt@TJTv@^b@f@^b@b@f@^r@nA`@^\f@`@VVp@Lx@Vb@d@n@\l@V|BLx@Hz@Pp@Lz@Fl@ErAFf@K~@IvBQr@m@hBFfAC|@g@nC?z@ANi@hBGjAMx@OvBa@hBWfBSx@?r@M|@Qv@Wn@q@tAMt@@z@Px@kAvDWj@u@pAYr@Mx@q@fA_@d@K~@YTAr@C@@B@`@ITSL}@I]vBz@pA@z@KVGDk@@g@Eg@Kg@@g@Ec@Fe@YSZGFEUUg@Gz@i@j@S|@Wr@Sp@[hBDx@BvBD~@BvCNx@Zj@Z^Zf@TXb@R^Z\`@f@FXj@BTOdA]`BUx@Wl@Oz@G|@Hn@At@m@lI@XXf@?v@IBCq@M_AV{B\wGLs@To@|@Th@In@`@@cBWmAuAeE[k@e@YYg@a@_@c@YQ[y@aAWa@Us@?iAEk@?{@KaFNy@d@qBh@eDl@s@J@JMLKLT`@R`@\X~@b@^^PfAr@\Lf@Fd@m@J{ABkALw@d@a@?_AMoA?yCbAqC@s@hBwBXi@Ng@Nu@n@sAMuBJ}@\kACs@[e@Wk@e@c@k@YYYIBi@eAMy@A}@Im@G}@JyBDyB?{@IyBC_AKc@_@QgAa@]m@eAo@]e@Om@SsAIy@GwDIwB@}BF}BC]AcEIq@Wq@i@eBMy@AkBUyDIKEvAIZUNK?MFc@ZUGKeAG}@M{DLgAD_ADiFHKtBITm@By@OS[QAUF}@PeBA}AIe@GQc@g@UaBUs@}@gAKi@Ns@A[Kw@GS]g@Ws@I}BOwB?{@SqDA_AQwDAw@g@DEGAu@B}BA}@Fy@Re@Hw@A_AUiAH{@RYXk@EwBG{@OiAAmA"

x = txt.replace("\\", "\\\\")

print(x)

Output(頂部字符串添加了空格以突出顯示與下面原始字符串的差異)

qnkyHbgFYhBi@lFA|@Dz@K~@Oz@An@Dz@A|@D|@M|BJZd@KDHRzBf@lMNrBB~@Lz@\\h@^`@Lt@?L]`@GH?FJl@Xl@NNLXVpBHV^LZf@Jt@@j@Kx@OjB@l@b@ZJDv@d@`@RXFp@\\Zl@d@|Ad@`@jAzBf@nATn@­~    @Jt@TJTv@^b@f@^b@b@f@^r@nA`@^@`    @VVp@Lx@Vb@d@n@\\ l@V|BLx@Hz@Pp@Lz@Fl@ErAFf@K~@IvBQr@m@hBFfAC|@g@nC?z@ANi@hBGjAMx@OvBa@hBWfBSx@?r@M|@Qv@Wn@q@tAMt@@z@Px@kAvDWj@u@pAYr@Mx@q@fA_@d@K~@YTAr@C@@B@`@ITSL}@I]vBz@pA@z@KVGDk@@g@Eg@Kg@@g@Ec@Fe@YSZGFEUUg@Gz@i@j@S|@Wr@Sp@[hBDx@BvBD~@BvCNx@Zj@Z^Zf@TXb@R^Z\\`@f@FXj@BTOdA]`BUx@Wl@Oz@G|@Hn@At@m@lI@XXf@?v@IBCq@M_AV{B\\wGLs@To@|@Th@In@`@@cBWmAuAeE[k@e@YYg@a@_@c@YQ[y@aAWa@Us@?iAEk@?{@KaFNy@d@qBh@eDl@s@J@JMLKLT`@R`@\\X~@b@^^PfAr@\\Lf@Fd@m@J{ABkALw@d@a@?_AMoA?yCbAqC@s@hBwBXi@Ng@Nu@n@sAMuBJ}@\\kACs@[e@Wk@e@c@k@YYYIBi@eAMy@A}@Im@G}@JyBDyB?{@IyBC_AKc@_@QgAa@]m@eAo@]e@Om@SsAIy@GwDIwB@}BF}BC]AcEIq@Wq@i@eBMy@AkBUyDIKEvAIZUNK?MFc@ZUGKeAG}@M{DLgAD_ADiFHKtBITm@By@OS[QAUF}@PeBA}AIe@GQc@g@UaBUs@}@gAKi@Ns@A[Kw@GS]g@Ws@I}BOwB?{@SqDA_AQwDAw@g@DEGAu@B}BA}@Fy@Re@Hw@A_AUiAH{@RYXk@EwBG{@OiAAmA

qnkyHbgFYhBi@lFA|@Dz@K~@Oz@An@Dz@A|@D|@M|BJZd@KDHRzBf@lMNrBB~@Lz@\ h@^`@Lt@?L]`@GH?FJl@Xl@NNLXVpBHV^LZf@Jt@@j@Kx@OjB@l@b@ZJDv@d@`@RXFp@\ Zl@d@|Ad@`@jAzBf@nATn@\ xAD~@Jt@TJTv@^b@f@^b@b@f@^r@nA`@^\f@`@VVp@Lx@Vb@d@n@\      l@V|BLx@Hz@Pp@Lz@Fl@ErAFf@K~@IvBQr@m@hBFfAC|@g@nC?z@ANi@hBGjAMx@OvBa@hBWfBSx@?r@M|@Qv@Wn@q@tAMt@@z@Px@kAvDWj@u@pAYr@Mx@q@fA_@d@K~@YTAr@C@@B@`@ITSL}@I]vBz@pA@z@KVGDk@@g@Eg@Kg@@g@Ec@Fe@YSZGFEUUg@Gz@i@j@S|@Wr@Sp@[hBDx@BvBD~@BvCNx@Zj@Z^Zf@TXb@R^Z\ `@f@FXj@BTOdA]`BUx@Wl@Oz@G|@Hn@At@m@lI@XXf@?v@IBCq@M_AV{B\ wGLs@To@|@Th@In@`@@cBWmAuAeE[k@e@YYg@a@_@c@YQ[y@aAWa@Us@?iAEk@?{@KaFNy@d@qBh@eDl@s@J@JMLKLT`@R`@\ X~@b@^^PfAr@\ Lf@Fd@m@J{ABkALw@d@a@?_AMoA?yCbAqC@s@hBwBXi@Ng@Nu@n@sAMuBJ}@\ kACs@[e@Wk@e@c@k@YYYIBi@eAMy@A}@Im@G}@JyBDyB?{@IyBC_AKc@_@QgAa@]m@eAo@]e@Om@SsAIy@GwDIwB@}BF}BC]AcEIq@Wq@i@eBMy@AkBUyDIKEvAIZUNK?MFc@ZUGKeAG}@M{DLgAD_ADiFHKtBITm@By@OS[QAUF}@PeBA}AIe@GQc@g@UaBUs@}@gAKi@Ns@A[Kw@GS]g@Ws@I}BOwB?{@SqDA_AQwDAw@g@DEGAu@B}BA}@Fy@Re@Hw@A_AUiAH{@RYXk@EwBG{@OiAAmA

所以你可以看到@\xAD~@變成@~@而我希望它是@\\xAD~@

基本問題是字符串中沒有反斜杠。 您的源代碼有反斜杠,但它們都是轉義信號。 如果要保留“所見即所得”樣式的反斜杠,請使用raw字符串模式:

txt = r"qnkyHbgFYhB..."

這將保留所看到的字符,而不處理通常的轉義序列。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM