使用正则表达式匹配软件包名称

时间:2019-03-21 02:44:13

标签: python regex

我有一些要使用正则表达式匹配的Python导入语句。

我有这四种类型的字符串,

  1. 将集合导入为c

我只想匹配最后一个单词'c'。 =>以 c

的形式导入集合
  1. 从日期时间导入日期开始为dt

我只想匹配最后一个单词'dt'。 =>从日期时间导入日期起为 dt

  1. 从sys import stdout,stderr,stdin中

我想在导入后匹配所有内容。 =>从sys import stdout stderr stdin

  1. 导入re

我只想匹配最后一个单词're'=> import re

目前,我正在使用inbuit方式按“ import”进行拆分,并在此之后获取效率低下的字符串。

我尝试这样做,

(?<=import ).*

但是它只匹配情况3和情况4,不匹配情况1和情况2。

如何使用正则表达式执行此操作?

1 个答案:

答案 0 :(得分:3)

这适用于您的四种情况,我认为应该大致上是这样:

re.search('import( \S* as)? (.*)$',your_string)[2]

简而言之,您搜索'import'之后所有结尾的单词(基本上是您一直想要的单词),但是您希望排除XXX as,以防这些单词跟在{ {1}},因此将其作为可选的匹配项(放在括号中)。最后,选择第二个匹配项。希望这很清楚