0

我正在尝试从字符串中获取数字,然后删除该数字。例如,我将有一个像 '42Xmessage' 这样的字符串,其中 42 是我想要的数字(它可以是任意位数),它以 X 结尾。

如何获取变量中的数字,然后在另一个变量中获取消息部分(没有数字和 X)?

4

4 回答 4

5

你可以做

'42Xmessage'.split('X')

返回

['42', 'message']

这不是很笼统,但您可以从字符串重新模块文档中获得更多信息。

于 2013-07-13T23:16:31.787 回答
2

使用partition

>>> s = '42Xmessage'
>>> s.partition('X')
('42', 'X', 'message')
>>> s.partition('X')[0]
'42'
于 2013-07-13T23:13:08.970 回答
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 之后的任何字符串。

于 2013-07-13T23:13:03.880 回答
0

你试过 re.sub 吗?

import re
re.sub('\d+X(.*)','\g<1>','42Xmesssage')

第一个参数是一个正则表达式,它捕获“后跟 X 的数字序列”之后的所有内容。您正在用 (.*) 捕获的字符串替换字符串,该字符串使用 '\g<1>'.* 指定

于 2013-07-13T23:17:42.137 回答