0
votes

Comment trouver le terme d'interception dans l'équation à l'aide de RegEx?

Ici, mon code est capable de me chercher le coefficient de x et y mais je ne reçois pas les termes d'interception! xxx

sortie: xxx

attendu: xxx

appréciera vraiment si quelqu'un pouvait suggérer les changements nécessaires pour que je puisse obtenir les interceptions correctes


2 commentaires

Quelle est la sortie attendue?


@Chrisdoyle, je viens de mettre à jour le résultat attendu!


3 Réponses :


1
votes

Essayez avec ceci:

import re

eq = ["1x+1y+2", "-1x+12Y-6", "2-5y-3x", "7y-50+2X", "3.14x-1.5y+9", "11.0x-1.5y+9.8"]
x = re.compile("([+-]?\d+(\.\d+)?)[xX]")
y = re.compile("([+-]?\d+(\.\d+)?)[yY]")
z = re.compile("([+-]?\d+(\.\d+)?)([+\-]|$)")
for line in eq:
    xx = 0
    m = x.search(line)
    if m:
        xx = m.group(1)
    yy = 0
    m = y.search(line)
    if m:
        yy = m.group(1)
    zz = 0
    m = z.search(line)
    if m:
        zz = m.group(1)
    print("X = "+ xx + ", Y = " + yy + ", intercept= " + zz)


1 commentaires

Merci @golammermazid Sajib pour votre aide. J'ai aussi trouvé une nouvelle solution à ce problème!



0
votes

Une nouvelle solution au même problème.

(1.0, 1.0, 2.0)
(-1.0, 12.0, -6.0)
(-3.0, -5.0, 2.0)
(2.0, 7.0, -50.0)
(3.14, -1.5, 9.0)
(11.0, -1.5, 9.8)


0 commentaires

1
votes

Vous pouvez réellement trouver les coefficients avec une regex à l'aide d'affirmations de lunettes, qui ne avancent pas la position de numérisation du moteur Regex.

1 1 2
-1 12 -6
-3 -5 2
2 7 -50
3.14 -1.5 9
11.0 -1.5 9.8


0 commentaires