我正在尝试从字符串中获取数字,然后删除该数字。例如,我将有一个像'42Xmessage'这样的字符串,其中42是我想要的数字(它可以是任意数字的数字),它由X终止。
如何获取变量中的数字,然后在另一个变量中获取消息部分(没有数字和X)?
答案 0 :(得分:5)
答案 1 :(得分:2)
使用partition
:
>>> s = '42Xmessage'
>>> s.partition('X')
('42', 'X', 'message')
>>> s.partition('X')[0]
'42'
答案 2 :(得分:1)
使用正则表达式:
import re
s = '42Xmessage'
pattern = re.compile("([0-9]+)X")
print pattern.findall(s)[0]
对于这部分问题:
“如何在变量中获取数字,然后在另一个变量中获取消息部分(没有数字和X)?”
import re
s = '42Xmessage'
pattern = re.compile("([0-9]+)X([a-z]+)", re.IGNORECASE)
num, msg = pattern.findall(s)[0][:2]
对于模式,[0-9]
是从0到9设置的数字。([0-9]+)X
找到任意数字后跟X
。同样,X([a-z]+)
,X之后的任何字符串。
答案 3 :(得分:0)
你试过re.sub吗?
import re
re.sub('\d+X(.*)','\g<1>','42Xmesssage')
第一个参数是一个正则表达式,它捕获“数字序列后跟一个X”后面的所有内容。您正在用(。*)使用'\ g&lt; 1&gt;'指定的内容替换字符串。*