我正在尝试将遍布HTML网页的5位数优惠券代码串起来.例如53232,21032,40021等...我能处理的5位与任何字符串比较简单的情况下[0-9]{5},虽然这也符合6,7,8,...,N数字.有人可以建议我如何修改这个正则表达式只匹配5位数字?
我有以下字符串:
1 2 134 2009
Run Code Online (Sandbox Code Playgroud)
而且我想捕获1-3个数字之间的字符串,因此结果应该是:
['1', '2', '134']
Run Code Online (Sandbox Code Playgroud)
我现在拥有的那些,但也捕获包含超过3位数的字符串中的"前3"数字.这是我目前的正则表达式:
>>> re.findall(r'\d{1,3}', '1 2 134 2009')
['1', '2', '134', '200', '9']
# or a bit closer --
>>> re.findall(r'\d{1,3}(?!\d)', '1 2 134 2009')
['1', '2', '134', '009']
Run Code Online (Sandbox Code Playgroud)
什么是确保另一个数字不立即进行的正确方法?
我正在学习正则表达式,我在这里有点困惑.我有一个字符串,我想从中提取一个至少有4位数字且最多7位数的int.我尝试了如下:
>>> import re
>>> teststring = 'abcd123efg123456'
>>> re.match(r"[0-9]{4,7}$", teststring)
Run Code Online (Sandbox Code Playgroud)
在那里我期待123456,不幸的是,这根本没有任何结果.有人可以帮我一点吗?
我有一个如下所示的数据框:
description
1906 RES 330 ML
1906 RES 330ML
RES 335 c/6
RES 332 c/12
Run Code Online (Sandbox Code Playgroud)
我想提取数字的三个连续数字并将其保存在新列"体积"中.我的代码是这样的:
df['volume'] = df['description'].str.extract('([([\d]*[\d]){3,3}?])')
Run Code Online (Sandbox Code Playgroud)
预期的结果应该是这样的:
volume
330
330
335
332
Run Code Online (Sandbox Code Playgroud)
但是,它给出了如下结果:
volume
1906
1906
335
332
Run Code Online (Sandbox Code Playgroud)
任何人都可以帮我修复此代码吗?非常感谢!!!