Python正则表达式(模式+通配符+模式)[返回](模式)

时间:2019-01-22 22:54:03

标签: python regex

在Python中使用selenium进行抓取并使用re进行解析 从字符串

<div type="copy3" class="sc-bxivhb dHqnfT">756 W Peachtree St NW Atlanta GA 30308</div>

我想回来

756 W Peachtree St NW Atlanta GA 30308

此正则表达式

("copy3").*?(?=</div>)

还给我

"copy3" class="sc-bxivhb dHqnfT">756 W Peachtree St NW Atlanta GA 30308

但是我想排除>之前756之前的所有内容

我如何包括这个?

2 个答案:

答案 0 :(得分:2)

用硒刮擦,用硒得到...

my_element = driver.find_element_by_css_selector('div[type="copy3"]')
address = my_element.text

答案 1 :(得分:1)

匹配>,然后捕获组中后面的非<,并提取该组:

type="copy3"[^>]+>([^<]+)

https://regex101.com/r/BX2tVj/1

如果您只想匹配 第一个<之后的内容,则必须使用lookbehind(仅当您确切知道{{1 }}属性可能包含):

class=""

https://regex101.com/r/BX2tVj/2

或者改为使用正则表达式模块,因此可以使用(?<=type="copy3" class="sc-bxivhb dHqnfT">)[^<]+

\K

https://regex101.com/r/BX2tVj/3

type="copy3"[^>]+>\K[^<]+