写一个正则表达式来组合大写和数字

时间:2015-04-24 09:16:52

标签: python regex

我有一个字符串ABC No.BC2345GFSD234CD。我试图在python中编写一个正则表达式来提取BC2345GFSD234CD。我还有一些表达式都依赖于此。我试过像^[^\.]*\.(?P<number>[A-Z0-9]*).*$这样的东西。有没有一些优雅的方法来做到这一点?

编辑:我有一个包含许多regex的文件。还有另一个程序可以获取这些正则表达式并在某些字符串上使用re.match。它是一个通用程序,我需要根据它来适应我的正则表达式。另外,我需要使用re.match()而不是re.search()

更多字符串可能是: -

&#39;&LT; lot_of_spaces&gt; ABC No.BC2345GFSD234CD&lt; lot_of_spaces&gt;&#39;

&#39;&LT; lot_of_spaces&gt; no-ABC.BC2345GFSD234CD&lt; lot_of_spaces&gt;&#39;

在每种情况下,我都需要提取 - BC2345GFSD234CD

2 个答案:

答案 0 :(得分:1)

不需要正则表达式。

>>> "ABC No.BC2345GFSD234CD".split('.')[-1]
'BC2345GFSD234CD'

如果你真的想要使用正则表达式,那么你可以试试这个。这将匹配最后存在的所有非点字符。

>>> re.search(r'[^.]*$', "ABC No.BC2345GFSD234CD").group()
'BC2345GFSD234CD'

答案 1 :(得分:0)

如果它是你需要的最后15个字符,只需切片:

>>> 'ABC No.BC2345GFSD234CD'[-15:]
'BC2345GFSD234CD'