Python [duplicate] işlevi olmayan ayrı dize karakteri

Dec 02 2020

Bu "+ 2x-5y + 8 + 2y" yi (karakterler arasında boşluk yok) python'da [+ 2x, -5y, + 8, + 2y] gibi ayırabilir misiniz? Nasıl?

Yanıtlar

schetefan24 Dec 02 2020 at 22:34

Gelebilecek her şey için girdinin modelini biliyorsanız, normal ifadelere bir göz atın

Sizin durumunuzda çözüm şunun gibi bir şey olabilir:

import re
a = "+2x-5y+8+2y"
print(re.findall(r"[+-]\d[xy]?", a))

re.findall(expression, input)düzenli bir ifade ve çözümlenecek bir argüman gerektirir Yukarıdaki çözümde, model [+-]\d[xy]?şunlardan oluşur:

  • [+-] ya + ya da - sembolü
  • \dherhangi bir rakam, \d+bunun yerine birden çok basamak kullanın (+ burada "en az bir tekrar" anlamına gelir)
  • [xy]?x ve y karakterlerinden biri, ancak eksik olabilir. Başka harfler de bekliyorsanız, bunları parantez içine ekleyin