Python正则表达式查找/拆分精确单词,包括结尾处的括号/excel公式
我对正则表达式的最后一部分有困难,这是我尝试将字符串拆分为Python正则表达式查找/拆分精确单词,包括结尾处的括号/excel公式,python,regex,parentheses,Python,Regex,Parentheses,我对正则表达式的最后一部分有困难,这是我尝试将字符串拆分为 未用括号括起来的大写字母 双引号包围字符(包括引号) 操作员 数字 确切的单词TODAY() 重新导入 s1='A+“你好”+B' s2='A+(100-20)' s3='A-B+TODAY()-100' 打印(重新拆分(“([A-Z]+\[”]。?[“]\\[\=\+\-\%\*\^]\\+\b今天(\)\b)”,s1)) #应为[“”,“”,“”,“”,“”,“”,“”,“”,“”,“”,“”,“”,“”,“”,“”,“”,“”
- 未用括号括起来的大写字母
- 双引号包围字符(包括引号)
- 操作员
- 数字
- 确切的单词
TODAY()
重新导入
s1='A+“你好”+B'
s2='A+(100-20)'
s3='A-B+TODAY()-100'
打印(重新拆分(“([A-Z]+\[”]。?[“]\\[\=\+\-\%\*\^]\\+\b今天(\)\b)”,s1))
#应为[“”,“”,“”,“”,“”,“”,“”,“”,“”,“”,“”,“”,“”,“”,“”,“”,“”]
#实际值['''A',''''+',''hello','+',''B',']
打印(重新拆分(“([A-Z]+|[”]。?[“]|[\=\+\-\%\*\^]\\+\b今天\(\)\b)”,s2))
#应为['''A',''''+','(''100','-','20',')]
#实际值[“‘A’、”、“+”、“(100’、“-”、‘20)”]
打印(重新拆分(“([A-Z]+\[”]。?[“]\\[\=\+\-\%\*\^]\\+\b今天(\)\b)”,s3))
#预期的[“”,“”,“”,“”,“”,“”,“”,“”,“”,“”,“”,“”,“”,“”,“”,“”,“”,“”,“”,“”,“”,“”,“”,“”,“”,“”,“”,“”,“”,“”,“”,“”,“”,“”,“”,“”,“”,“”,“”,“”,“”,“”,“”
#实际的,实际的
编辑:更正,意思是说任何长度的双引号包围字符今天匹配()的模式应该是第一种选择
import re
print (re.split('(TODAY\(\)|[A-Z]+|["].?["]|[\=\+\-\%\*\^])','A-B+TODAY()'))
我认为你没有正确地摆脱背后的伤痕。尝试将您的模式转换为原始字符串:
r'([a-Z]+|[“]?[“].[\=\+\-\%\*\^]\124;\ b今天(\)\b);'a-b+TODAY()'
您可能还希望包含涵盖所有边缘情况的示例数据(我不确定此处正确显示的是括号边缘情况)。