I try to transform this php-function into Python:
function trouveunebrique($contenu, $debut, $fin) {
$debutpos = strpos($contenu, $debut);
$finpos = strpos($contenu, $fin, $debutpos);
if ($finpos == 0) {
$finpos = strlen($contenu);
}
$nbdebut = strlen($debut);
if ($debutpos > 0) {
$trouveunebrique = substr($contenu, ($debutpos + $nbdebut), ($finpos - $debutpos - $nbdebut));
}
else {
$trouveunebrique = "";
}
return (trim($trouveunebrique));
}
I searched here but i could't find the solution. I also tried this:
def trouveunebrique(contenu, debut, fin)
debutpos = haystack.find(contenu, debut)
finpos = haystack.find(contenu, fin)
if (finpos == 0)
finpos = len(contenu)
nbdebut = len(debut)
if (debutpos > 0):
trouveunebrique = substr(contenu, (debutpos + nbdebut), (finpos - debutpos - nbdebut))
else:
trouveunebrique = ""
return trouveunebrique.strip()
To get substrings in Python (and any subsequences for that matter) use slice notation, which is similar to indexing but contains at least one colon between brackets:
>>> "Hello world"[4:7]
'o w'
>>> "Hello world"[:3]
'Hel'
>>> "Hello world"[8:]
'rld'
You figured out strpos() equivalent already: str.find() method on string objects. Also note that you can provide an additional index to it like in your PHP function:
debutpos = contentu.find(debut)
# ...
finpos = contenu.find(fin, debutpos)
It returns -1 when substring is not found. Otherwise, it behaves like PHP equivalent.