繁体   English   中英

我们如何 1. 搜索具有特定结构的链接/脚本/img 以及 2. 使用单个正则表达式从匹配的字符串中获取用户 ID?

[英]How can we 1. search for a link/script/img with a particular structure and 2. pick up a user id from the matched string using a single regex?

假设一个 html 源代码有这些标签 link、img、src。

有些具有以下结构,

<link href="/users/id/111/myProfile">
...
<img src="/users/111/key_item">
...
<img src="/users/111/AAAAAAAAA.png">
...
<link href="/users/id/111/my_home">
...
<script src="/users/111/bbbb.js"

使用 2 个单独的正则表达式,我可以找出用户 ID,

regex   = '<(script|img|link).*(src|href)=[\'\"][/]users/(id/|)[\d]+/.*[\'\"]'
pattern = re.compile(regex, re.IGNORECASE)
link    = pattern.search(html_source_code).group(0)

user_pattern = re.compile('[\d.]+', re.IGNORECASE)
user         = user_pattern.search(link).gourp(0)

我想将这两个正则表达式组合成一个。 这是一个用于获取用户 ID 的正则表达式。

我如何为此使用正则表达式?

我在这里看到了一个答案。 但无法从中找出解决方案。

首先,您需要在正则表达式中将字符/转义为\\/ ,其次,您需要使用非捕获组(?: stuff)来处理您不想被捕获的内容,我将您的正则表达式修复为这样,适用于您的示例:

<(?:script|img|link).*(?:src|href)=[\\'\\"][\\/]users\\/(?:id\\/|)([\\d]+)\\/.*[\\'\\"]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM