📅  最后修改于: 2023-12-03 14:46:28.543000             🧑  作者: Mango
有时候我们需要从字符串中提取运算符并对其进行操作,这就需要我们对字符串进行拆分。Python提供了多种方法来拆分字符串中的运算符,下面将介绍其中的几种方法。
使用正则表达式可以方便地匹配字符串中的运算符,并将其提取出来。例如,下面的代码可以提取出字符串中的加号(+)和减号(-):
import re
string = "4 + 5 - 2"
operators = re.findall(r'[+\-*/]', string)
print(operators) # ['+', '-']
这里使用了正则表达式[+\-*/]
,表示匹配字符串中的加号、减号、乘号和除号。findall()
函数会返回一个包含所有匹配项的列表。
Python中有一个很方便的字符串函数split()
,可以按指定的字符对字符串进行分割。对于字符串中的运算符,我们可以将其视为分割字符,例如:
string = "4 + 5 - 2"
operators = [char for char in string if char in "+-*/"]
print(operators) # ['+', '-']
这里使用了一个列表推导式,将字符串中的运算符提取出来并存储在列表中。
partition()
方法可以按指定的分割字符将字符串分成三部分,分别是分割字符左边的子串、分割字符本身和分割字符右边的子串。在字符串中连续的运算符可以使用递归的方法进行拆分。例如,下面的代码可以提取出字符串中的加号(+)和减号(-):
def extract_operators(string):
left, separator, right = string.partition("+")
if separator == "":
left, separator, right = string.partition("-")
if separator == "":
return []
else:
return [separator] + extract_operators(right)
else:
return [separator] + extract_operators(right)
string = "4 + 5 - 2"
operators = extract_operators(string)
print(operators) # ['+', '-']
这里定义了一个递归函数extract_operators()
,每次调用会提取出一个加号或减号,然后对剩余的子串进行递归调用。如果分割字符不存在,则返回空列表。
无论是使用正则表达式、split()函数还是字符串方法partition(),Python都提供了简单而又方便的方法来拆分字符串中的运算符。我们可以根据不同的场景选择不同的方法。