import re
test = 'We four guys, live at 2nd street of Malibeu. I had a cash of $248 in my pocket. I got a ticket with serial number ABC1234.'
arr = []
arr = re.findall(r'[0-9]+', test)
print(arr)
我试过这样从字符串中获取数字。但它只返回字符串
我想在数字前面加上$
号。
我需要打印序列号,比如
ABC1234
我得到的结果是:
[2, 248, 1234]
我需要像这样的输出:
用$
符号:
$248
用ABC
:
ABC1234
请帮我解决这个问题
在匹配数字之前,您可以选择匹配
$
或大写字符模式匹配
(?:
非捕获组\$
匹配$|
或\b[A-Z]+
单词边界,匹配1+大写字符)?
关闭非捕获组并将其设置为可选\d+
匹配1+个数字Regex demoPython demo
范例
输出
如果您不想只匹配数字,则非捕获组不应是可选的,您可以在末尾添加单词边界
\b
,以防止部分匹配:Regex demoPython demo
输出
我使用此代码将$和ABC组合在一起:
结果是
['$248', 'ABC1234']
我相信
$
符号不需要re
模块。因为有一个内置的python方法,所以可以使用-.startswith
和.endswith
。以下是您如何使用它-您也可以使用
.startswith
作为序列号。但是如果序列号中的字母是随机的,并且不总是以“ABC”开头,那么可以使用re
。因此,您需要匹配后面有数字的字符串,然后您可以执行以下操作-这里
[a-z]+[\d]+
匹配任何带有小写字母和数字的字符串用于eg-abc1200、ABC1234。如果不需要小写字母,请将其删除。但是,为了确定,我添加了它们|
是正则表达式中的Or
运算符[A-Z]+[\d]+
匹配任何带有大写字母和数字的字符串。这是您需要的模式的主要部分正如我所说,如果您不需要匹配的小写字母,那么删除
[a-z]+[\d]+
和|
所以, 对“$”使用
.startswith
,对“序列号”使用re
相关问题 更多 >
编程相关推荐