【问题标题】:How can I take integer regex?我怎样才能采用整数正则表达式?
【发布时间】:2016-11-09 19:47:24
【问题描述】:

我正在尝试在 Python 中使用正则表达式来获取文本的某些部分。我需要从文本中获取这种子字符串“2016-049172”。那么等效的正则表达式是什么? 非常感谢。

这是一段代码:

import re

pattern = re.compile(r"\s-\s[0-9]+[0-9]$]")
my_string = 'Ticketing TSX - 2016-049172'

matches = re.findall(pattern,my_string)
print matches

当然,我的输出是空列表。 (我为最初的糟糕帖子道歉,我是新人)

【问题讨论】:

  • 请添加 1) 示例输入; 2) 期望的输出; 3) 你尝试过的。
  • 是否您尝试使用正则表达式?你的尝试在哪里?您是否阅读过有关正则表达式语法的各种教程?是否总是四位数,一个破折号,然后是六位数?
  • 查看regex101.com,一旦您了解更多相关信息,它可以帮助您处理正则表达式。
  • 您似乎希望我们为您编写一些代码。虽然许多用户愿意为陷入困境的程序员编写代码,但他们通常只在发布者已经尝试自己解决问题时才提供帮助。展示这项工作的一个好方法是包含您迄今为止编写的代码、示例输入(如果有的话)、预期输出和您实际获得的输出(输出、回溯等)。您提供的详细信息越多,您可能收到的答案就越多。检查FAQHow to Ask
  • @busfault 谢谢,我去看看。

标签: python regex integer


【解决方案1】:

正如其他人发布的那样,您正在寻找的正则表达式是:

\d{4}-\d{6}

我将使用的完整代码:

import re

my_string = 'Ticketing TSX - 2016-049172'
matches = re.findall(r"\d{4}-\d{6}", my_string)

print matches

例如,如果第二个数字的长度在 6 到 8 位之间变化,则需要将正则表达式更新为此。

\d{4}-\d{6,8}

有关正则表达式和在 Python 中使用正则表达式的所有详细信息,请参阅docs

【讨论】:

    【解决方案2】:

    要使用的正则表达式是这样的:

    \d{4}-\d{6}
    

    更新您的示例代码,这将为您完成:

    import re
    
    pattern = re.compile(r"\d{4}-\d{6}")
    my_string = 'Ticketing TSX - 2016-049172'
    
    matches = re.findall(pattern,my_string)
    print matches
    

    【讨论】:

      猜你喜欢
      • 2011-12-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多