0

私はこの多項式を文字列に持っています。

x^3+0.125x+2

ここで 3 と 2 を一致させたいのですが、0.125 は一致させません。整数だけです。私がこれまでに持ってきた最高のものはこれですが、これでも 0.125 で 25 に一致します。

(?<!\.)\d+(?!\.)
4

2 に答える 2

1

整数は、数字のみを含む数値であり、オプションのeor E(数値が続く場合のみ) であり、オプションで . で始まります-。左側には、非数字および非文字 (x2変数名と見なされるため) のみが存在するか、または何も存在しません。右側には、非数値または何もないことしかできません (2x右側は になります2*x)。

次のパターンは、指定された仕様に従って、文字列内のすべての整数に一致する必要があります。

r'(?:^|(?<=[^\d\w\.]))(?:(?:(?<![\d\w])|^)\-)?\d+(?:[eE]\d+)?(?!\.)(?=[^\d]|$)''
于 2013-02-25T02:02:06.237 に答える
1

これを試すことができます:

>>> import re
>>> re.findall(r'(?<!\.)\b\d+\b(?!\.)', "x^3+0.125x+2")
['3', '2']

を使用\b\d+\bして、番号全体が一致することを確認します

于 2013-02-25T00:42:19.247 に答える