gpt4 book ai didi

Python 在字符串中查找正则表达式

转载 作者:行者123 更新时间:2023-12-01 02:22:28 26 4
gpt4 key购买 nike

我正在尝试在名为网页的字符串中查找货币值的所有情况。

字符串网页是来自this的文本网页,在我的程序中它只是硬编码,因为这就是所需要的,但我不会将其全部粘贴到此处。

regex = r'^[$£€]?(([\d]{1,3},([\d]{3},)*[\d]{3}|[0-9]+)(\.[0-9][0-9])?(\s?bn|\s?mil|\s?euro[s]?|\s?dollar[s]?|\s?pound[s]?|p){0,2})'
res = re.findall(regex, webpage)
print(res)

它正在回归 [],我预计它会回归 [1310 亿美元、1000 亿英镑、1000 亿美元、174 亿美元]

最佳答案

在不知道必须搜索的文本的情况下,您可以使用正则表达式:

([€|$|£]+[0-9a-zA-Z\,\.]+)

捕获包含 €、£ 或 $ 的所有内容,然后打印金额,无需跟随单词或字母。请参阅此处的实际示例:http://rubular.com/r/a7O7AGF9Zl .

使用这个正则表达式我们得到这个代码:

import re
webpage = '''
one
million
dollars
test123
$1bn asd
€5euro
$1923,1204bn
€1293.1205 million'''
regex = r'([€|$]+[0-9a-zA-Z\,\.]+)'
res = re.findall(regex, webpage)
print(res)

输出:

['$1bn', '€5euro', '$1923,1204bn', '€1293.1205']

编辑:在提供的网站上使用相同的正则表达式,它返回以下输出:

['$131bn', '$100bn', '$17.4bn.', '$52.4bn']

如果您进一步修改正则表达式以查找例如5 亿,您可以在第一个括号中添加 0-9,然后搜索 £、€、$ 或任何以 0-9 开头的内容。

输出:

webpage = '''
one
million
€1293.1205 million
500million
'''
regex = r'([€|$0-9]+[0-9a-zA-Z\,\.]+)'

因此变为:

['€1293.1205', '500million']

关于Python 在字符串中查找正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47815774/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com