perl的Python正则表达式等价物

perl的Python正则表达式等价物,python,perl,Python,Perl,在Python中,以下Perl条件的等价物是什么 if($line=~/DramBase/) 我尝试了以下方法,但不匹配(底部的线条) 我不得不把它改成 if(re.match( r'.*DramBase', line)): 与这条线相配 # -DF0.CCM0.DramBaseAddress1 0x00004001 是否有一个标志可以在行中的任何位置匹配它,而不显式匹配起始字符?您需要使用,而不是re.match仅匹配字符串的开头,而re.search匹配任何位置,如在Perl中。请参阅

在Python中,以下Perl条件的等价物是什么

if($line=~/DramBase/)
我尝试了以下方法,但不匹配(底部的线条)

我不得不把它改成

if(re.match( r'.*DramBase', line)):
与这条线相配

# -DF0.CCM0.DramBaseAddress1 0x00004001
是否有一个标志可以在行中的任何位置匹配它,而不显式匹配起始字符?

您需要使用,而不是
re.match
仅匹配字符串的开头,而
re.search
匹配任何位置,如在Perl中。

请参阅以获取解释

重新匹配(模式、字符串、标志=0)

如果字符串开头有零个或多个字符与正则表达式模式匹配,则返回相应的匹配对象。如果字符串与模式不匹配,则返回None;请注意,这与零长度匹配不同

请注意,即使在多行模式下,re.match()也只会在字符串的开头进行匹配,而不会在每行的开头进行匹配

如果要在字符串中的任何位置找到匹配项,请改用search()(另请参见search()vs.match())


我想你应该使用
re.search
谢谢。这是如何支持“只有一种显而易见的方法”的Python哲学的呢。
re.match
是否可以替换为
re.search(r'^…')
# -DF0.CCM0.DramBaseAddress1 0x00004001