要知道起始字符并在python中替换其他字符

时间:2012-10-31 06:41:35

标签: python string

我有一些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新手,请帮帮我 提前致谢。

3 个答案:

答案 0 :(得分:1)

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

.

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

答案 1 :(得分: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

答案 2 :(得分:1)

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

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

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

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

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