Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python中的匹配字符串模式_Python_Regex - Fatal编程技术网

python中的匹配字符串模式

python中的匹配字符串模式,python,regex,Python,Regex,我有一个可以包含链接的字符串: <a href="http://site1.com/">Hello</a> <a href="http://site2.com/">Hello2</a> <a href="http://site3.com">Hello3</a> ... ... 如何提取所有html标记“Hello”、“Hello2”、“Hello3”的文本(而不是链接)?我在想一个应该包含所有文本的列表 使用: 使用:

我有一个可以包含链接的字符串:

<a href="http://site1.com/">Hello</a> <a href="http://site2.com/">Hello2</a>
<a href="http://site3.com">Hello3</a> ...

...
如何提取所有html标记“Hello”、“Hello2”、“Hello3”的文本(而不是链接)?我在想一个应该包含所有文本的列表

使用:

使用:


您想查看
BeautifulSoup
library切勿使用正则表达式进行解析!从未!您想查看
BeautifulSoup
library切勿使用正则表达式进行解析!从未!请不要使用
/text()。特别是,它会在链接上做一些有趣的事情,比如
我会做
//a/string()
。你的版本是等效的吗?我刚刚试过;出于某种原因,lxml引发了
lxml.etree.xpathevaleror:Invalid expression
@larsmans:但为了回答您的问题,是的,将返回
之间的所有文本,而不带任何标记。
string()
可能是XPath 2.0,lxml只支持1.0+1用于清洁溶液。请不要使用
/text()
,这是一种清洁剂。特别是,它会在链接上做一些有趣的事情,比如
我会做
//a/string()
。你的版本是等效的吗?我刚刚试过;出于某种原因,lxml引发了
lxml.etree.xpathevaleror:Invalid expression
@larsmans:但为了回答您的问题,是的,将返回
之间的所有文本,而不带任何标记。
string()
可能是XPath 2.0,lxml只支持1.0+1用于清洁溶液。
import lxml.html as LH

content = '''
<a href="http://site1.com/">Hello</a> <a href="http://site2.com/">Hello2</a>
<a href="http://site3.com">Hello3</a>
<a href="/">go <b>home</b>, dude!</a>
'''

doc = LH.fromstring(content)
texts = [elt.text_content() for elt in doc.xpath('//a')]
print(texts)
['Hello', 'Hello2', 'Hello3', 'go home, dude!']