如何解决如何在 Python 中拆分重复的分隔符
我有一个格式的字符串
exp = '(( 200 + (4 * 3.14)) / ( 2 ** 3 ))'
我想使用 re.split()
将字符串分隔为标记,并包括分隔符。但是,我无法将 **
拆分在一起并最终被 *
拆分。
这是我的代码:tokens = re.split(r'([+|-|**?|/|(|)])',exp)
我的输出(错误):
['(','(','200','+','4','*','3.14',')','/','2','3',')']
我想问一下有没有办法在 *
和 **
之间分割分隔符?非常感谢!
期望的输出:
['(','**',')']
解决方法
使用 [...] 表示法只允许您指定单个字符。要获得可变大小的替代模式,您需要使用 |这些括号之外的运算符。这也意味着您需要转义正则表达式运算符,并且需要将较长的模式放在较短的模式之前(即 * 之前的 **)
tokens = re.split(r'(\*\*|\*|\+|\-|/|\(|\))',exp)
甚至更短:
tokens = re.split(r'(\*\*|[*+-/()])',exp)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。