例如,我得到以下输入:
-9x+5x-2-4x+5
我需要获取以下列表:
['-9x', '5x', '-2', '-4x', '5']
这是我的代码,但是我不知道如何处理负号。
import re
text = '-3x-5x+2=9x-9'
text = re.split(r'\W', text)
print(text)
警告:除re和math外,我不能使用任何库。
参考方案
您可以re.findall
所有字符组,后跟+
或-
(或字符串结尾$
),然后strip
+
(与-
一样,仍属于以下组)。
>>> s = "-9x+5x-2-4x+5"
>>> [x.strip("+") for x in re.findall(r".+?(?=[+-]|$)", s)]
['-9x', '5x', '-2', '-4x', '5']
类似地,对于带有=
的第二个字符串,将其添加到字符组中,并将其从子字符串中去除:
>>> s = '-3x-5x+2=9x-9'
>>> [x.strip("+=") for x in re.findall(r".+?(?=[+=-]|$)", s)]
>>> ['-3x', '-5x', '2', '9x', '-9']
或按=
拆分后,将原始理解应用于子字符串,具体取决于结果的外观:
>>> [[x.strip("+") for x in re.findall(r".+?(?=[+-]|$)", s2)] for s2 in s.split("=")]
>>> [['-3x', '-5x', '2'], ['9x', '-9']]
实际上,现在我想到了,您也可以只findall
匹配一个可选的减号,后跟一些数字和一个可选的x
,先进行或不进行=
拆分:
>>> [re.findall(r"-?\d+x?", s2) for s2 in s.split("=")]
[['-3x', '-5x', '2'], ['9x', '-9']]
Python pytz时区函数返回的时区为9分钟 - python由于某些原因,我无法从以下代码中找出原因:>>> from pytz import timezone >>> timezone('America/Chicago') 我得到:<DstTzInfo 'America/Chicago' LMT-1 day, 18:09:00 STD…
在返回'Response'(Python)中传递多个参数 - python我在Angular工作,正在使用Http请求和响应。是否可以在“响应”中发送多个参数。角度文件:this.http.get("api/agent/applicationaware").subscribe((data:any)... python文件:def get(request): ... return Response(seriali…
Python exchangelib在子文件夹中读取邮件 - python我想从Outlook邮箱的子文件夹中读取邮件。Inbox ├──myfolder 我可以使用account.inbox.all()阅读收件箱,但我想阅读myfolder中的邮件我尝试了此页面folder部分中的内容,但无法正确完成https://pypi.python.org/pypi/exchangelib/ 参考方案 您需要首先掌握Folder的myfo…
如何将Python字节字符串表示形式转换为字节? - python我在文本文件中存储了许多Python字节对象,这些Python打印的内容类似于"b'\x80\x03}q\x00.'"如何将每个对象转换回字节对象?换句话说,我正在尝试找到一个执行convert("b'\x80\x03}q\x00.'") == b'\x80\x03}q…
语法中的Python字符串 - python看到一段使用'str in str in str'语法的代码很奇怪,例如:>>> 'test' in 'testtest' in 'testtesttest' True >>> 'test' in 'testtest' in…