如何使用通配符的字符串匹配

问题描述:

我怎样才能做到这一点:如何使用通配符的字符串匹配

if 'class="*word*"' in html: 
    print "True." 
else: 
    print "False." 

在Linux中使用*作为通配符字符是怎样的?

+2

如果你遵循这条线索,你会意识到[你不应该这样解析HTML](https://*.com/q/1732348/102441) – Eric

你将要看看re模块。这可以让你做一个正则表达式并且完成和*在linux命令行中一样的事情。

您可以使用re模块的正则表达式进行通用模式匹配。

但是,如果您正在使用HTML并试图匹配标签,并且我建议您调查LXML并使用其parse函数和cssselect来获得所需内容。

from lxml import html 

# read in and parse the html 
html_doc = parse(filename).getroot() 

# get elements that match class "classname" 
elements = html_doc.cssselect(.classname) 

This doc描述了不同的CSS选择器

如果你只是想匹配的Unix文件名模式匹配,可以使用专用模块fnmatch:如果你想要做的先进模式

import fnmatch 
words = ["testing", "wildcard", "in", "python"] 
filtered = fnmatch.filter(words, 'p?thon') 
# filtered = ['python'] 
filtered = fnmatch.filter(words, 'w*') 
# filtered = ['wildcard'] 

匹配,使用正则表达式。