関数pythonなしで文字列文字を分離する[重複]
Dec 02 2020
Pythonの[+ 2x、-5y、+ 8、+ 2y]のように、この「+ 2x-5y + 8 + 2y」(文字間にスペースはありません)を区切ることができますか?どうやって?
回答
schetefan24 Dec 02 2020 at 22:34
入ってくる可能性のあるすべての入力のパターンがわかっている場合は、正規表現を見てください
あなたの場合、解決策は次のようなものになる可能性があります
import re
a = "+2x-5y+8+2y"
print(re.findall(r"[+-]\d[xy]?", a))
re.findall(expression, input)
正規表現と解析される引数が必要です上記のソリューションでは、パターン[+-]\d[xy]?
は次のもので構成されます。
[+-]
+または-記号のいずれか\d
\d+
代わりに複数の数字を使用することが予想される場合は、任意の数字(+はここで「少なくとも1回の繰り返し」を意味します)[xy]?
xとyのいずれかの文字ですが、欠落している可能性があります。他の文字も期待する場合は、これらの括弧内に追加してください