u'abcde(date=\'2/xc2/xb2\',time=\'/case/test.png\')'
Tout ce dont j'ai besoin est le contenu à l'intérieur de la parenthèse.
u'abcde(date=\'2/xc2/xb2\',time=\'/case/test.png\')'
Tout ce dont j'ai besoin est le contenu à l'intérieur de la parenthèse.
Et s'il n'y a pas de '(' et ')' ? Vous obtiendrez s[0:-1]. Ce qui signifie que vous obtiendrez tout ce qui se trouve dans 's' : \. Il serait bon que vous vérifiiez d'abord que la chaîne comporte des parenthèses.
Le problème n'est alors pas aussi simple que le problème initial et nécessitera une solution différente.
C'est peut-être une question stupide, mais pourquoi le " ?" est-il nécessaire ? Pourquoi "(.*)" ne fonctionne-t-il pas ?
@CutePoison parce que .*
est gourmand (il prendra la correspondance la plus longue) et .*?
n'est pas gourmand (il prendra la correspondance la plus courte)
Dans le prolongement de la réponse de tkerwin, si vous avez parenthèses imbriquées comme dans
st = "sum((a+b)/(c+d))"
Cette réponse ne fonctionnera pas si vous avez besoin de tout prendre entre le premièrement parenthèse ouvrante et le dernier parenthèse fermante pour obtenir (a+b)/(c+d)
car find cherche à partir de la gauche de la chaîne et s'arrête à la première parenthèse fermante.
Pour corriger cela, vous devez utiliser rfind
pour la deuxième partie de l'opération, de sorte qu'elle deviendrait
st[st.find("(")+1:st.rfind(")")]
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.
1 votes
Des supports ? Je ne vois pas de parenthèses. Tu veux dire des parenthèses ?
5 votes
Pourquoi ne pas utiliser des guillemets ? Cela rendrait la chaîne plus facile à lire, par exemple
u"abcde(date='2/xc2/xb2',time='/case/test.png')"
1 votes
Cette question me rend nerveux rien qu'en la regardant. Je soupçonne furtivement qu'OP vraiment veut la fonctionnalité dans
ast
et ne sait pas qu'il existe.