【发布时间】:2019-07-20 14:54:32
【问题描述】:
我目前正在寻找一种通过正则表达式在 HTML 类名开头执行模式匹配的方法。我要匹配的模式是:
"col-xs-.*"
HTML 页面中的两个类示例是:
<div class="col-xs-12 col-sm-12 col-lg-12">
<div class="mod-tiles__sizer col-xs-6 col-sm-4 col-lg-3">
目标是只匹配上面的类名,因为它实际上以“col-xs-.*”开头,这就是我所追求的。使用我当前的正则表达式匹配,我似乎无法将这些类名单独列出。目前我正在尝试使用以下正则表达式模式进行匹配:
regex = re.compile('^col-xs-.*$')
soup.find_all("div", class_ = regex)
不幸的是,这种模式还会打印出第二个类名(其中“col-xs-.*”出现在中间,而不仅仅是在开头)。希望有人能解决这个问题。
【问题讨论】:
-
.*匹配到字符串的末尾。试试\bcol-xs-\d+\b -
@Thefourthbird 不幸的是,您的解决方案似乎不起作用。 .* 匹配到字符串结尾是否重要?我所需要的只是让模式出现在字符串的开头,我认为之后发生的其余部分并不是那么重要。
标签: regex python-3.x beautifulsoup