0

私はこれを持っておりstring = "abc('abt')"、値を抽出したいと思います。

私は試しました:string = string.strip("abc('/)")私はpythonを使用しています。結果が 't' の場合、私は 'abt' を希望します。どうすればいいですか?

4

3 に答える 3

2

これは、括弧内の単一引用符内のすべてを見つける正規表現です。左括弧とそれに続く一重引用符を検索し、別の一重引用符と右括弧までのすべてを収集します。

>>> import re
>>> s = "abc('abt')"
>>> regex = re.compile("\('(.*)'\)")
>>> m = re.search(regex, s)
>>> m.group(1)
'abt'
于 2013-03-13T21:35:49.140 に答える
1

.strip()削除する文字のセットを取ります。すべての、、、、、、aおよび文字を先頭と末尾から削除しbています。その時だけが残ります。c('/)t

'代わりに次のように分割できます。

string.split("'")[1]

または、スライスで最初と最後から正確な文字を明示的に削除することもできます。

string[5:-2]
于 2013-03-13T21:24:21.890 に答える
0
^[^=]*=\sabc\(['"]?(\w+)['"]\)$

この正規表現は、最初のグループに必要なものをキャッチします。Pythonでその値を抽出する方法がわかりません。少しグーグルで調べてみましょう:)

import re
regex = re.compile(r"^[^=]*=\s\"abc\(['""]?(\w+)['""]\)\"$")
input = "string = \"abc('abt')\""
matches = regex.match(input)
your_val = matches.group(1)

この正規表現は、「abc」のような「値」を持つ文字列に対してのみ機能することに注意してください。

申し訳ありませんが、手元に Python がなく、テストもされていませんが、アイデアはあると思います。

于 2013-03-13T21:24:05.683 に答える