首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用Python regex提取页面和页码

用Python regex提取页面和页码
EN

Stack Overflow用户
提问于 2021-11-24 10:51:09
回答 2查看 136关注 0票数 0

我想用regex从URL中提取页面和页码。页码有几个变体:

代码语言:javascript
复制
fghghdsfs/page4
fghghdsfs/page-4
sfgsfgsfg/page=4
hteheth/page-4/
dhdghgd/page=4/
dghdghdh/page/4/
dghdghdh/page/4
fghghdsfs?page4
dhdghd?page-4
dghdg?page-4/
eyeyt?page=4
etyetyet?page=4/
nvnndgnd?page/4/
dghdghdh/page/4

页数应在1到3位之间。

我尝试过使用这个正则表达式,但是我在识别/时遇到了问题。

代码语言:javascript
复制
(=|\?|\/)(page)(_|-|=|\d{1,3}|\/)
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-11-24 10:56:25

正则表达式有两个问题:

  1. \d{1,3}在括号内。您的意思是:page后面跟着分隔符或页码。把它放在圆括号后面,并使它成为一个捕获组,这样以后您就可以提取它。
  2. 需要有分隔符的组,因此page4不匹配。在小组后面放一个?

修复这些问题:

(=|\?|\/)(page)(_|-|=|\/)?(\d{1,3})

在regex101上看到它的作用

票数 1
EN

Stack Overflow用户

发布于 2021-11-24 10:56:40

您可以使用此正则表达式:

代码语言:javascript
复制
[=?/]page[_=/-]?(\d{1,3})

RegEx演示

RegEx详细信息:

  • [=?/]:匹配=?/
  • page:匹配字符串page
  • [_=/-]?:可选匹配_=/-
  • (\d{1,3}):匹配1到3位数字
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70094742

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档