Regex Python-根据后一个字符串的最后一次出现,在两个字符串之间查找子字符串

Regex Python-根据后一个字符串的最后一次出现,在两个字符串之间查找子字符串,regex,python-3.x,web-scraping,beautifulsoup,css-selectors,Regex,Python 3.x,Web Scraping,Beautifulsoup,Css Selectors,我试图找到介于到字符串之间的子字符串。第一个字符串是,最后一个字符串是。我寻找的第一个字符串是重复的,而后面的字符串可以用作锚点 以下是一个例子: 英美资源集团 卡尔顿之家露台20号 SW1Y 5AN伦敦 大不列颠联合王国 电话:+44(0)207968888 传真:+44(0)2079688500 互联网: 我想得到“英国”。我很想通过字符串操作得到这个字符串,但如果有人能通过Beautifulsoup(理想情况下使用css_选择器)得到它,我也会被连接 祝你一切顺利 重新导

我试图找到介于到字符串之间的子字符串。第一个字符串是

,最后一个字符串是


。我寻找的第一个字符串是重复的,而后面的字符串可以用作锚点

以下是一个例子:


英美资源集团

卡尔顿之家露台20号
SW1Y 5AN伦敦
大不列颠联合王国

电话:+44(0)207968888
传真:+44(0)2079688500
互联网:
我想得到“英国”。我很想通过字符串操作得到这个字符串,但如果有人能通过Beautifulsoup(理想情况下使用css_选择器)得到它,我也会被连接

祝你一切顺利

重新导入
html=”“”
英美资源集团

卡尔顿之家露台20号
SW1Y 5AN伦敦
大不列颠联合王国

电话:+44(0)207968888
传真:+44(0)2079688500
互联网:
""" res=re.findall(r'
\n([a-zA-Z\s]+)?\n

',html) 打印(res)
注意:“\n”是一个新行,从到您要查找的内容,再加上4个空格。所以如果你有这样的东西:

...
<br>United Kingdom<br><br>
...
。。。

英国

...
你应该替换

res=re.findall(r'
\n([a-zA-Z]+)?\n

',html)

res=re.findall(r'
([a-zA-Z\s]+)?

,html)


这里有很好的正则表达式课程

您可以使用正则表达式和html字符串来获取这些内容

导入请求,重新
r=请求。获取('https://www.marketscreener.com/ANGLO-AMERICAN-PLC-4007113/company/“,headers={'User-Agent':'Mozilla/5.0(Windows NT 10.0;Win64;x64)AppleWebKit/537.36(KHTML,如Gecko)Chrome/77.0.3865.90 Safari/537.36'})
reg=re.search(r'
([\w\s]+)

,r.text)。组(1) 打印(注册)
您可以尝试执行
拆分
并使用

作为分隔符。然后寻找第四个(索引3)元素。我找到了,但它并不总是在同一个位置。我真的很想用最后一个锚得到一个答案,我想我应该先把它分开。但是有没有别的办法让我知道。谢谢你,你可以在


上拆分
,然后查看拆分
的第一个元素,然后在

上拆分
那个元素,然后在

上得到拆分
的最后一个元素。@MattCremeens有效:my_soup=beautifulsou(网络源代码,'lxml'))css_selector='.pageprofil_link_blue'my_tag:tag=my_soup.select_one(css_selector)parent_tag=my_tag.parent print(“parent div tag tag is:”,parent_tag)print(“parent div tag type:”,type(parent_tag))split_address=str(parent_tag)。split(sep='

'))[0]split_address_list=str(split_address)。split(
)country=split_address_list[len(split_address_list)-1]打印('country is:',country)无法使用css完成,因为css从不考虑文本节点。使用xpath是可能的。
...
<br>United Kingdom<br><br>
...