Python - 如何打印特定文本

时间:2011-08-08 19:47:20

标签: python printing split xmpp

def handler_users_answ(coze, res, type, source):
    if res:
        if res.getType() == 'result':
            aa=res.getQueryChildren()
            if aa:
                print 'workz1'
                for x in aa:
                    m=x.getAttr('jid')
                    if m:
                        print m

所以这段代码会返回如下值:

roomname@domain.com/nickname1
roomname@domain.com/nickname2

等等,但我希望它仅在'/'之后打印值。 像:

nickname1
nickname2

提前致谢。

4 个答案:

答案 0 :(得分:2)

您可以使用rpartition获取字符串中最后一个\之后的部分。

答案 1 :(得分:1)

a = 'roomname@domain.com/nickname1'

b=a.split('/');
c=b[1];

答案 2 :(得分:1)

您可以使用rsplit进行右侧分割:

a = 'roomname@domain.com/nickname1'
try:
    print a.rsplit('/')[1][1]
except IndexError:
    print "No username was found"

我认为这是有效且可读的。如果你真的需要快速,你可以使用rfind

a = 'roomname@domain.com/nickname1'
index = a.rfind('/')
if index != -1:
    print a[index+1:]
else:
    print "No username was found"

答案 3 :(得分:1)

要正确完全解析和验证JID,请参阅this answer。有一堆你可能没想到的奇怪的小边缘情况。