0

データベースからデータを取得しているPythonコードがいくつかあります。私が興味を持っている列は、次の形式のURLです。

../xxxx/ggg.com

最初の文字がであるかどうかを確認する必要があります.
それが.Iの場合、文字列の先頭にある2つのドットを削除し..てから、別の文字列を追加する必要があります。
そして最後に、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('..', '')

または、単に文字列の先頭にある 2 つのピリオドを削除したい場合は、次のようにすることができます。

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

もちろん、これは最初にピリオドが 2 つしかなく、文字列からこれらの 2 つのピリオドを単純に削除したいことを前提としています。

于 2012-10-31T06:51:19.033 に答える
1

などの正規表現を使用しre.sub(r'^\.\.', '', old_string)ます。正規表現は文字列を照合する強力な方法であるため、上記の例では、正規表現^\.\.は文字列の先頭 ( ) とその後に続く 2 つのドットに一致します。これは、それ自体で実際には何にでも一致するため、^使用してエスケープする必要があります。私があなたが望むと思うことを行うためのより完全な例:\.

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 に答える