【问题标题】:How do I look for the following value in list using regex: [closed]如何使用正则表达式在列表中查找以下值:[关闭]
【发布时间】:2020-03-07 07:53:33
【问题描述】:

我有以下字符串列表:

['0        NaT\n5     7 days\n10    5 days\n14    2 days\n23   12 days\n24    1 days\n27    1 days\n30    2 days\n31    1 days\n32    1 days\n34    4 days\n36   25 days\n42   30 days\n43    2 days\n44    1     days\n46    2 days\n51    5 days']

我需要查找存在此序列的实例并提取其间的数字:

Look for '1 days\n{some number}    1 days\'

Example from list:
1 days\n27    1 days\

Number is:
27

在正则表达式中有一种简单的方法吗?如果有另一种不使用正则表达式的方法,请教我。

【问题讨论】:

  • 一个包含一个字符串的数组,对吧?为什么不只是字符串?阅读您的字符串所需的水平滚动伤害了我的肩膀。你能用更短的吗?

标签: python regex list


【解决方案1】:

正则表达式可能是最好的方法。

import re
result = [ re.findall(r'\b1 days\\n(\d+)\s+1 days', x, ) for x in your_list ]

【讨论】:

  • 你将如何区分 1 和 11 或 1 和 21 等...这适用于示例数据,但更通用的东西会更好 =)。只是一个提示。哦,是的,你会想要使用原始字符串来制作反斜杠。
  • @JvdV 对。已更正。
  • 不确定你是否知道,但我会稍微修改一下你的模式......
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-25
  • 1970-01-01
相关资源
最近更新 更多