0

文字列を解析し、そこから特定の部分文字列を読み取る必要があります。解析する必要がある文字列は次のとおりです。

domain
(
    (device
          (console
               (xxxxxx)
               (XXXXXX)
          )
    )
)

domain
(
    (device
          (vfb
               (xxxxxx)
               (location : 5903)
          )
    )
)

これは単なるサンプル文字列です。実際の文字列には、そのような部分文字列が多数含まれている場合があります。「vfb」部分文字列から位置フィールドの値を取得する必要があります。次のようにfindallとsearch機能を試しました

import re
text=re.search('(device(vfb(.*?)))',stringname)

import re
text=re.findall('(device(vfb(.*?)))',stringname,re.DOTALL)

しかし、私は常に空の文字列を取得しています。これを行う簡単な方法はありますか?ありがとう

4

3 に答える 3

1

locationキーと値のペアを探してみませんか?

>>> re.findall(r'(\w+) : (\w+)', s)
    [('location', '5903')]
于 2012-12-26T07:14:47.633 に答える
0

単純なPythonスクリプト:

fp = open("input.txt", "r")

data = fp.readlines()
for line in data:

    if "location" in line:
        print line.split(":")[1].split(")")[0].strip()

fp.close()
于 2012-12-26T07:21:26.647 に答える