は、いくつかのサンプル入力です:関数から式を抽出するための正規表現?ここ
Fxfu(x1,Y,n<X+Y)
Fxfu(x1,Y(n,A,B),Z(n,A,B)+M(n,A,B)<n)
Fxfu(x1,Y(n),Z(n)^M(n)<X+Y)
Fxfu(x1,(n,A,B),Z(n)^M(n)<T(n,A,B))
と私はそれに対応する出力になりたい:
n<X+Y
Z(n,A,B)+M(n,A,B)<n
Z(n)^M(n)<X+Y
Z(n)^M(n)<T(n,A,B)
私は、次のコード
find=regex.compile(r'(Fxfu\(x\d+[,]([Y]\((.*)\)[,]))|Fxfu\(x\d+[,]([Y][,])')
group = find.search(expression)
print expression.replace(group.group(0),"")
に行うには、任意のより良い方法を書かれています上記のように、配列内のすべてのパラメータを次のように抽出することができます。
[x1,Y,n<X+Y]
[x1,Y(n,A,B),Z(n,A,B)+M(n,A,B)<n]
[x1,Y(n),Z(n)^M(n)<X+Y]
[x1,(n,A,B),Z(n)^M(n)<T(n,A,B)]
以前同じ質問をしましたか? – Barmar
なぜ 'Fxfu'の代わりに' [F] [x] [f] [u] 'と書いていますか? – Barmar
正規表現は、このような再帰パターンの解析には一般的には適していません。再帰的な降下パーサーを使用する必要があります。 – Barmar