python - 正则表达式从字符串中拆分正/负浮点/整数
问题描述
如何调整以下代码以返回此示例中的单词和数字?
下面的正则表达式很好地提取了正负整数/浮点数,但我也想保留单词 ('abc')。
numeric_const_pattern = '[-+]? (?: (?: \d* \. \d+ ) | (?: \d+ \.? ) )(?: [Ee] [+-]? \d+ ) ?'
rx = re.compile(numeric_const_pattern, re.VERBOSE)
rx.findall("-1 abc -1m abc -2.0 abc -2.0m abc 1 abc 1m abc 2.0 abc 2.0m abc")
谢谢
伊恩
解决方案
如果要保留所有abc
字符串,并且要对数字字符串进行的唯一更改是删除m
,似乎将问题重新定义为“m
从每个单词的末尾删除”会更容易:
>>> [x[:-1] if x.endswith("m") else x
... for x in
... "-1 abc -1m abc -2.0 abc -2.0m abc 1 abc 1m abc 2.0 abc 2.0m abc".split()
... ]
['-1', 'abc', '-1', 'abc', '-2.0', 'abc', '-2.0', 'abc', '1', 'abc', '1', 'abc', '2.0', 'abc', '2.0', 'abc']
推荐阅读
- java - 不在 Excel 文件中打印下一行
- c# - 如何使用 C# 从 UI 自动化树中快速检索元素?
- hazelcast - 集群事件总线消费者未收到消息
- javascript - EventTarget 类型上不存在属性 innerWidth
- android - 基于网站的移动应用程序
- android - GSON getAsString() 方法不会从 JSON 元素中去除双引号?
- python - 为多个变量分配不同的值
- oracle - 我想要一个唯一的查询结果。它应该只返回一个结果
- c# - 如何使用 PostSharp 创建一个惰性单例方面?
- java - 使用java中的扫描仪类将值插入两个数组