2014-11-20 68 views
-1

拉出字符串我有以下字符串:如何通过正则表达式

>>> x 
'Content Type: TV Mini-Series\n\n\n      - 705 min - Action|Drama|History |' 

我想拉出值“迷你系列”,没有之前或之后任何事情。这是我到目前为止:

>>> re.match(r'.+TV Mini-Series', x).group(0) 
'Content Type: TV Mini-Series' 

我该如何才能得到“电视迷你系列”文本?

+0

're.match(r'。+ TV Mini-Series',x).group(0).split(':')[1]'? – Celeo 2014-11-20 21:53:12

+0

只需使用一个普通的HTTP解析器,忘记有问题的解决方案,是吗? – 2014-11-20 22:30:47

回答

1

如果你想搜索基于Mini-Series,并希望'TV Mini-Series你可以把一个可能导致与空间,你的模式。所以作为TV是大写字母[A-Z]*可以匹配任何Mini-Series之前的大写字母组合!

>>> re.search(r'[A-Z]* Mini-Series',x).group(0) 
'TV Mini-Series' 
0

使用re.search会更适合这个:

>>> re.search(r'TV Mini-Series', x).group(0) 
'TV Mini-Series' 
0

正则表达式似乎是一个矫枉过正时,你可以简单地使用str.split

>>> x = 'Content Type: TV Mini-Series\n\n\n      - 705 min - Action|Drama|History |' 
>>> x.split('\n', 1)[0].split(maxsplit=2)[2] 
'TV Mini-Series' 
>>> 
0

re.match(R '+(电视迷你系列)',X)。集团(1 )
=> '电视迷你系列'

注意:您要使用组(1),因为组定义(0)捕获整个字符串