我正在尝试对文件中的行应用条件处理(由列表中的列表值表示,用于下面的演示目的),并希望endswith(x)
在 x 是 range 的方法中使用正则表达式函数page-[1-100])
。
import re
lines = ['http://test.com','http://test.com/page-1','http://test.com/page-2']
for line in lines:
if line.startswith('http') and line.endswith('page-2'):
print line
因此,所需的功能是,如果该值以 范围内的页面开头http
和结尾,1-100
那么它将被返回。
编辑: 经过反思,我想推论的问题是:
- 如何制作正则表达式模式,即
page-[1-100]
变量? - 然后我如何使用这个变量
x
,例如endswith(x)
编辑:
这不是对原始问题的答案(即它不使用startswith()
and endswith()
),我不知道这是否有问题,但这是我使用的解决方案(因为它实现了相同的功能):
import re
lines = ['http://test.com','http://test.com/page-1','http://test.com/page-100']
for line in lines:
match_beg = re.search( r'^http://', line)
match_both = re.search( r'^http://.*page-(?:[1-9]|[1-9]\d|100)$', line)
if match_beg and not match_both:
print match_beg.group()
elif match_beg and match_both:
print match_both.group()