我正在尝试将 perl 正则表达式转换为 python 等效项。
perl中的行:
($Cur) = $Line =~ m/\s*\<stat\>(.+)\<\/stat\>\s*$/i;
我尝试过的,但似乎没有用:
m = re.search('<stat>(.*?)</stat>/i', line)
cur = m.group(0)
几乎/i
意味着不区分大小写
m = re.search(r'<stat>(.*?)</stat>',line,re.IGNORECASE)
还可以r
在字符串上使用修饰符,这样您就不需要转义尖括号之类的东西。
但我的猜测是更好的解决方案是使用 html/xml 解析器,如 beautifulsoup 或其他类似包
类似于以下内容...
r
是 Python 用于正则表达式模式的原始字符串表示法,为了避免转义,在前缀之后是您的正则表达式跟随您的字符串数据。re.I
用于不区分大小写的匹配。
请参阅re
文档更详细地解释这一点。
要找到您的匹配项,您可以使用MatchObjectgroup()
的方法,如下所示:
cur = re.search(r'<stat>([^<]*)</stat>', line).group(1)
使用search()
仅匹配第一次出现,使用findall()
匹配所有出现。
matches = re.findall(r'<stat>([^<]*)</stat>', line)