l'obtention de la chaîne entre 2 caractères en python
J'ai besoin d'obtenir certains mots d'une chaîne de caractères dans un nouveau format. Par exemple, j'appelle la fonction avec l'entrée:
text2function('$sin (x)$ is an function of x')
et j'ai besoin de les mettre dans un StringFunction:
StringFunction(function, independent_variables=[vari])
où j'ai besoin pour obtenir juste 'sin (x)' et la fonction 'et' x ' pour vari. Donc, il devrait ressembler à ceci enfin:
StringFunction('sin (x)', independent_variables=['x']
problème est que je n'arrive pas à obtenir la fonction et vari. J'ai essayé:
start = string.index(start_marker) + len(start_marker)
end = string.index(end_marker, start)
return string[start:end]
et
r = re.compile('$()$')
m = r.search(string)
if m:
lyrics = m.group(1)
et
send = re.findall('$([^"]*)$',string)
tout semble semble me donner rien. Suis-je en train de faire quelque chose de mal? Toute aide est très appréciée. Merci.
Vous devez vous connecter pour publier un commentaire.
Tweeky façon!
$
est un caractère spécial dans les regex (il indique la fin de la chaîne). Vous devez vous échapper:Si vous voulez couper une chaîne de caractères entre deux caractères identiques (j'.e, !234567890!)
vous pouvez utiliser
Vous avez besoin pour commencer à chercher pour le second caractère au-delà de
start
:parce que sinon, il va trouver le même caractère à l'emplacement même encore une fois:
Pour vos expressions régulières, le
$
personnage est interprété comme un point d'ancrage, pas le caractère littéral. S'échapper d'établir une correspondance littérale$
(et de chercher des choses qui sont pas$
plutôt que de ne pas"
:qui donne:
L'expression régulière
$()$
autrement ne correspond pas vraiment à quoi que ce soit entre les parenthèses, même si vous n'avez échapper à la$
caractères.