【发布时间】:2017-12-18 20:15:11
【问题描述】:
我有两个字符串:
num = '#123'
line = '#123 random text generator #111 #222 #333'
我希望得到'#xyz' if num == first number in line.格式的所有数字
我已使用正则表达式通过以下方式获取第一个数字 (#123):
re.findall(r'[#]\d{3,10}', line)
我尝试通过以下方式测试这种情况:
if re.findall(r'[#]\d{3,10}', line)[:1] == num:
我试图将 re.findall 放入一个参数并打印它的长度和类型,它说它的长度为 0 和类型列表。这让我很困惑,因为 [:1] 应该给我它找到的 '#123' 字符串吗?列表似乎是空的,但我不知道为什么。
更具体地说,我的代码有matrix = [['#123'] ['#234'] ['#345'] ['#666']]。
def test(matrix,txt):
for num_group in matrix:
print num_group
for num in num_group:
for line in txt:
if re.findall(r'[#]\d{3,10}', line)[:1] == num:
print "found some more numbers in the line number!"
print line
more_nums = re.findall(r'[#]\d{3,10}', line)[1:]
matrix[num_group].append(nums)
所以我的最终结果应该将#111 #222 和#333 附加到包含#123 的matrix[0]。
【问题讨论】:
-
你应该为你正在使用的语言添加一个标签。
-
抱歉 :)
-
你可以使用 PyPi 正则表达式模块吗?然后你可以用一种模式来做。还是您仅限于 Python
re? -
我对 PyPi 不熟悉,但我希望它尽可能简单,所以我想除了我所做的之外不需要任何外部模块。它也应该适用于我的代码..
-
什么是
num?它是一个字符串吗?现在它看起来像一条评论。