我只想得到以下短语末尾的数字(整数):
VISTA AES TIETE E UNT N2 600
VISTA IT AUUNIBANCO PN N1 1.400
OPCAO DE VENDA 04/21 COGNP450ON 4,50COGNE 100.000
我的意思是:600,1400,100000。稍后我会将它们中的每一个添加到数据库中
我尝试使用正则表达式:(?<;=\s)(\d*\s*)|(\d*\d*)$
但它没有正常工作。有什么想法吗
PS:我们用点而不是逗号来表示1000:1.000,而不是1000
Tags:
在您尝试的模式中,此部分
(?<=\s)(\d*\s*)
匹配可选数字,后跟可选空格字符,而左侧必须直接有空格字符这还将获得字符串中左侧有whitspace字符的所有位置,因为匹配中的数字和空白字符是可选的
在这部分
(\d*\.\d*)$
中,数字是可选的,因此它也可以只匹配字符串末尾的一个点如果结尾的数字前必须有空格字符,可以使用:
模式匹配:
(?<=\s)
正向查找,在当前位置左侧断言一个whitspace字符\d{1,3}
匹配1-3个数字(?:\.\d{3})*
可选地重复一个点和3个数字$
字符串的结尾见a regex demo
如果数字本身也可以是,则可以在左侧
(?<!\S)
断言一个空白边界另见regex demo
例如,使用
str.extract
并将模式包装到捕获组中:输出
实际上,对于您的用例,我认为您甚至不需要
regex
您只需拆分字符串并取最后一个,然后用空字符串替换点
如果是数据帧(因为您已经标记了
Pandas
)如果是字符串列表
如果数据是数据帧的形式
输出
相关问题 更多 >
编程相关推荐