【问题标题】:regex is ignoring special characters, but i need four digits in a row w/o special characters between正则表达式忽略特殊字符,但我需要连续四位数字,中间没有特殊字符
【发布时间】:2019-02-15 14:37:31
【问题描述】:

我的目标是在提取的数据中找出年份。我有一些看起来像“6/2009”和“3.12.1998”的数据。我想使用正则表达式来查找连续 4 位数字的位置(之间没有特殊字符),但上面的代码返回“6200”和“3121”而不是 2009 和 1998。

output_year = re.findall('\d{4}', extracted_year)

【问题讨论】:

  • 不,这是不可能的。在运行 re.findall 之前,您必须运行一些 re.sub(r'\W+', '', s)
  • 当你说不可能的时候,你的意思是我想要的输出不可能,还是错误?
  • 使用re.findall('\d{4}', '3.12.1998.') 无法获得您当前的输出。 Try it.,您将看到您的代码适用于您的输入。
  • 为了清楚起见,您可能想要重命名变量,因为从extracted_year 中提取年份没有意义。 (Wiktor 也是对的:您的示例没有重现问题。)
  • Lisa,为了能够帮助您,您应该发布整个相关代码。

标签: python regex python-3.x


【解决方案1】:

也许这些情况不会导致故障。当然,在正则表达式模式之前添加r,如下所示:https://ideone.com/6XS5yE

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-06-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-09
    • 2018-06-13
    • 2023-03-31
    • 1970-01-01
    相关资源
    最近更新 更多