正则表达式删除版权

时间:2012-01-18 00:32:45

标签: python regex

我需要删除版权年份。版权可以采用以下形式:

2011 Company --> 'Company'
Company 2011 --> 'Company'
2011 1 Company 2 --> '1 Company 2'
1 Company 2 1944 --> '1 Company 2'

如何删除4位数版权并仅获取公司(请注意公司名称中可能包含数字)。

到目前为止,我已经尝试了[0-9] {4},但在重新搜索时遇到了麻烦。

>>> a=re.search('[0-9]{4}',a)
>>> a
<_sre.SRE_Match object at 0x10527b780>
>>> a.match(0)
>>> AttributeError: match

3 个答案:

答案 0 :(得分:1)

试试这个

>>> import re
>>> s = '2011 Company'
>>> removed = re.sub('(^\d{4})|(\d{4}$)','',s).strip()
>>> print removed

答案 1 :(得分:1)

import re

def removeYear(inputStr):
    pattern1 = re.compile(r'^\d{4,4}\ (.*)')
    outputStr = re.sub(pattern1, r"\1", inputStr)

    pattern2 = re.compile(r'(.*)\ \d{4,4}$')
    fixedStr = re.sub(pattern2, r"\1", outputStr)
    print '-->'+ fixedStr

if __name__ == '__main__':
    removeYear('2011 Company')
    removeYear('Company 2011')
    removeYear('2011 1 Company 2')
    removeYear('1 Company 2 1944')

答案 2 :(得分:0)

\d{4} 

表示4位数,或者您可以这样写以修剪空格:

\s*\d{4}\s*

这是你想要的吗?