【问题标题】:Python regex search for all matching stringsPython 正则表达式搜索所有匹配的字符串
【发布时间】:2017-10-04 15:04:50
【问题描述】:

我遇到的问题可能比我解决的要简单。

   # /usr/bin/env python
   import csv
   import re
   import math

   gt_user = raw_input("Enter person you want to look for")
   for list, nums in info:
     if gt_usr == list:
        re.search(r'/.$/', get_usr)
        total += numbs

我需要找到与用户输入名称匹配的所有字符串,例如:用户输入示例,但在 csv 数据集中有EXAMPLE-2455 我需要查找所有字符串并将它们组合到同一个数据集中,因为它们是从同一个地方。例如:customer 和 customer-2334 是同一个人。

【问题讨论】:

  • 在这种情况下使用.startswith() 会好很多。
  • 所以你得到了数字并添加它们?
  • ^EXAMPLE.*$ 如果你真的想使用正则表达式。显然EXAMPLE 将是一个变量
  • 我正在从 .csv 获取数据,我必须寻找与我在上面放置的内容相匹配的字符串,以确保我收集到所有匹配的内容。
  • 你应该澄清你所说的“匹配”是什么意思。这是否总是意味着“开始于”?或者它的意思是“包含”?

标签: python regex csv parsing


【解决方案1】:

我假设您省略了将 CSV 解析为 info,它表示行列表,其中每行包含一对项目:一个名称和一些您想要总计的数字。听起来您想要以下内容:

total = 0
gt_user = raw_input("Enter person you want to look for")
for name, num in info:
    if gt_user in name:
        total += num

或者更简单地说:

gt_user = raw_input("Enter person you want to look for")
total = sum(num for name, num in info if gt_user in name)

【讨论】:

  • 该死的 n00b 在 if 循环部分的工作错误
猜你喜欢
  • 1970-01-01
  • 2020-11-29
  • 2011-11-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多