在某些字符后修剪python字符串

Trimming python string after certain characters

我正在创建一个将字节转换成UTF-16字符串的程序。但是,有时字符串会继续,因为后面有0,而我的字符串的结尾会像这样:"这是我的字符串x00\x00\x00""。当我到达第一个表示尾随0的\x00x00时,我想修剪字符串。如何在python中执行此操作?

我的问题不是链接到注释中的另一个问题的副本,因为trim()不能完全工作。如果我有一个字符串"这是我的字符串x00\x00hi there x00\x00"",我只想"这是我的字符串",而trim会返回"这是我的字符串hi there"


使用index('\x00')获取第一个空字符的索引,并将字符串切片到索引;

1
2
3
4
5
mystring ="This is my string\x00\x00\x00hi there\x00"
terminator = mystring.index('\x00')

print(mystring[:terminator])
#"This is my string"

也可以对空字符执行ecx1〔3〕操作;

1
2
print(mystring.split(sep='\x00', maxsplit=1)[0])
#"This is my string"


使用strip()功能可以消除一些您不需要的字符,例如:

1
2
3
a = 'This is my string \x00\x00\x00'
b = a.strip('\x00') # or you can use rstrip() to eliminate characters at the end of the string
print(b)

您将得到This is my string作为输出。