0

我有一些 python 代码,我在其中从数据库中检索数据。我感兴趣的列是一个 URL,格式如下:

../xxxx/ggg.com

我需要确定第一个字符是否为..
如果是,.我需要删除..字符串开头的两个点,然后将另一个字符串附加到它。
最后我必须生成一个 xml 文件。

 This is my code:
    xml.element("Count","%s" %(offercount))
    for colm in offer:
        xml.start("Offer")
        xml.element("qqq","%s" %(colm[0]))
        xml.element("aaaa","%s" %(colm[1]))
        xml.element("tttt","%s" %(colm[2]))
        xml.element("nnnnnn","%s" %(colm[3]))      

        xml.element("tttt","%s" %(colm[4]))----> This colm[4] is the string with ..
        xml.end()

我是Python新手,请帮助我。
提前致谢。

4

3 回答 3

1

你可以像这样保持简单

In [116]: colm = ['a', 'b', 'c', 'd', '..heythere']

In [117]: str = colm[4]

In [118]: if str.find('..') == 0:
   .....:     print "found .. at the start of string"
   .....:     x = str.replace('..', '!')
   .....:     print x
   .....:
found .. at the start of string
!heythere
于 2012-10-31T06:50:47.733 回答
1

我建议您使用内置的字符串处理函数startswith()replace()

if col.startswith('..'):
    col = col.replace('..', '')

或者,如果您只是想删除字符串开头的两个句点,您可以执行以下操作:

if col.startswith('..'):
    col = col[2:]

这当然是假设您在开头只有两个句点,并且您希望简单地从字符串中删除这两个句点。

于 2012-10-31T06:51:19.033 回答
1

使用正则表达式,例如re.sub(r'^\.\.', '', old_string). 正则表达式是匹配字符串的一种强大方式,因此在上面的示例中,正则表达式^\.\.匹配字符串的开头 ( ^) 后跟两个点,这需要使用转义,\因为.它本身实际上匹配任何内容。一个更完整的例子来做我认为你想要的:

import re
if re.match(r'^\.\.', old_string):
    new_string = old_string[2:] + append_string

有关正则表达式的更多信息,请参阅http://docs.python.org/2/library/re.html 。

于 2012-10-31T06:48:19.733 回答