2016-07-07 37 views
-6

我想在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

可用请添加1)实施例的输入; 2)期望的输出; 3)你试过了什么。 – dawg

+1

*您是否尝试使用正则表达式?你的尝试在哪里?你读过关于正则表达式语法的各种教程吗?它总是会变成四位数字,然后是六位数字? – jonrsharpe

+1

查看http://www.regex101.com它可以帮助您通过正则表达式了解更多关于它的信息。 –

回答

1

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

\d{4}-\d{6} 

Full co德我会用:

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

1

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

\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