如何使用正则表达式搜索符号

时间:2019-03-28 12:33:27

标签: python regex python-3.x

学习Python并尝试通过使用正则表达式从HTML页面获取用户ID。 (LTT是网站,仅用于练习)。

我希望能够在cmd中键入“ findID 用户名”并返回6位ID号。

已经花了几个小时尝试不同的代码并查找引用,也许有人可以为我解释一下它。我可以配置searchRegex对象以正确识别页面中的6位数字,但是找不到我要寻找的正确6位数字组合。 (与另外6个特定的用户ID数字相对应,另外随机获得6个数字)

import re, requests, sys, time
if len(sys.argv)>1:
    search=requests.get('https://linustechtips.com/main/search/?&q='+str(sys.argv[1:])+'&type=core_members')
    searchRegex=re.compile(r"^'$\d\d\d\d\d\d^'$")
    ID=searchRegex.search(search.text)
    print(ID)
    time.sleep(10)
else:
    print('Enter a search term...')

我尝试了多种不同的方法来使代码识别'符号。但是当我这样尝试时,返回None。正则表达式为什么能找到6位数字,却找不到以'开头和结尾的6位数字。

这是我正在对其进行测试的HTML页面。

view-source:https://linustechtips.com/main/search/?&q=missiontomine&type=core_members

1 个答案:

答案 0 :(得分:0)

尝试使用正则表达式:(?<=profile\/)\d{6}

Demo

html文本中的userid作为url的一部分,例如:

https://linustechtips.com/main/profile/600895-missiontomine/?do=hovercard

(?<=profile\/)令人反感