首页 > 解决方案 > 多行文本中匹配组的正则表达式

问题描述

我有这个多行文本,我想在“下一个”文本之前提取数值(在本例中为 13)。数值会改变,但位置会保持不变,它表示网站上的总页面数。我无法编写正确的正则表达式来返回此值:

Previous
1
2
3
...
13
Next

Showing 1 - 100 of 1227 Results[EXTRACT]

pattern =re.compile(r'(\d{1,2})\r\nNext', re.M)
result = pattern.match(text)

预期返回值为 13。

标签: regexpython-3.x

解决方案


import re

t = """Previous
1
2
3
...
13
Next

Showing 1 - 100 of 1227 Results[EXTRACT]"""

re.search(r"\d+(?=\s+Next)", t).group(0)

    Returns: '13'

正则表达式执行前瞻断言,以查看是否有任何数量 (>1) 的数字后跟任何数量 (>1) 的空白字符和单词Next


推荐阅读