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_Web Scraping - Fatal编程技术网

Python正则表达式重新排除一个字符串并包含另一个字符串

Python正则表达式重新排除一个字符串并包含另一个字符串,python,regex,web-scraping,Python,Regex,Web Scraping,我正在尝试只匹配 挑战在于排除“…p/\uu/job”后面的随机字符串 目前我的解决方案包括结果中的随机项 <a href="/cmp/_/job\?(.*)>(.*)</a> 我调查过周围的人,但没能让他们工作 不要()用正则表达式解析HTML。使用解析器 Python有一个很好的HTML解析器,名为,另一个名为。使用其中一个 from pyquery import PyQuery as pq doc = pq(url="http://your_url/"

我正在尝试只匹配

挑战在于排除“…p/\uu/job”后面的随机字符串 目前我的解决方案包括结果中的随机项

<a href="/cmp/_/job\?(.*)>(.*)</a>  

我调查过周围的人,但没能让他们工作

不要()用正则表达式解析HTML。使用解析器

Python有一个很好的HTML解析器,名为,另一个名为。使用其中一个

from pyquery import PyQuery as pq

doc = pq(url="http://your_url/")
link = doc("a:contains('Services Team Members - Ryde')")

print(link.attr("href"))
印刷品

'/cmp/_/job?jk=3711c253b2f3ccef&tk=1a1dof'
{'tk': ['1a1dof'], 'jk': ['3711c253b2f3ccef']}

在你被诱惑之前,也不要用正则表达式解析URL。使用一个

印刷品

'/cmp/_/job?jk=3711c253b2f3ccef&tk=1a1dof'
{'tk': ['1a1dof'], 'jk': ['3711c253b2f3ccef']}

虽然这在社区中是一个受人尊敬的观点,但与正则表达式相比,在HTML中使用HTML解析器有其固有的优点和缺点。不,只有缺点。还有一大群人否认这一点,因为他们认为自己非常擅长正则表达式,所以他们是规则的例外。但我不是来讨论这个的。如果你必须使用正则表达式,那就是你的葬礼。我在这里只是想告诉你,正则表达式并不是适合这项工作的工具,而且在合适的工具可用且易于使用的情况下,坚持使用错误的工具来完成一项工作是愚蠢的。通过在页面上的文本体中匹配模式的子部分,regex可以更容易地使用。Ie访问页面“…了解更多关于…工作的信息”。使用BS4,您可以访问拆分为标记并循环遍历标记,这比在页面中文本的任何位置重新登录都要繁琐。这篇文章的主要目的是了解如何在Python中实现“lookarounds”。对不起,我不相信这一点。这篇文章的主要目的是搜索一个正则表达式来解析HTML。那个四处张望的家伙是在转移视线。请参阅“XY问题”-您甚至在提出问题之前就决定“lookarounds”必须是解决方案,您的问题当然是询问如何使用lookarounds执行$TASK,而完全忽略您实际想要执行的$TASK,而不是“lookarounds”。你可以随心所欲地反对我。我甚至给了你一个比你的方法更简单(更容易维护)的工作示例代码(而且很有效!)。让我总结一下:“我想挂一幅画。所以我有这个钉子,还有一个啤酒瓶,但当我用它敲钉子的时候,它总是断开。我怎么能用那个啤酒瓶把钉子钉在墙上?”“啤酒瓶是做这项工作的错误工具,使用锤子。这会更容易。”——“嗯,但我读到这里有一点争议。有人说啤酒瓶能很好地把钉子钉进墙上。既然一场争论的各方当然都是平等的,我坚持用啤酒瓶来做。还是错的。”——“我不同意”。