我有一些要使用正则表达式匹配的Python导入语句。
我有这四种类型的字符串,
我只想匹配最后一个单词'c'。 =>以 c
的形式导入集合我只想匹配最后一个单词'dt'。 =>从日期时间导入日期起为 dt
我想在导入后匹配所有内容。 =>从sys import stdout , stderr , stdin
我只想匹配最后一个单词're'=> import re
目前,我正在使用inbuit方式按“ import”进行拆分,并在此之后获取效率低下的字符串。
我尝试这样做,
(?<=import ).*
但是它只匹配情况3和情况4,不匹配情况1和情况2。
如何使用正则表达式执行此操作?
答案 0 :(得分:3)
这适用于您的四种情况,我认为应该大致上是这样:
re.search('import( \S* as)? (.*)$',your_string)[2]
简而言之,您搜索'import'
之后所有结尾的单词(基本上是您一直想要的单词),但是您希望排除XXX as
,以防这些单词跟在{ {1}},因此将其作为可选的匹配项(放在括号中)。最后,选择第二个匹配项。希望这很清楚