python中的RegEx可以正常测试,但不能正确实施

时间:2019-04-17 03:00:45

标签: python python-3.x

我正在做一个个人项目,这是我第一次使用RegEx,所以如果我误解了文档,请原谅我。在我的程序中,我正在阅读网页并尝试从中解析信息。我已经在pythex (link)上测试了我的表达式,它准确地突出显示了我感兴趣的字符串部分,但是当我在命令行中使用相同的输入测试代码时,却得到了奇怪的输出。

我尝试过使用search,findall并与各种奇怪的输出匹配,但是没有运气。

def getStats():
    playername = input("Enter your OSRS name: ")
    try:
        with urllib.request.urlopen("https://secure.runescape.com/m=hiscore_oldschool/index_lite.ws?player=" + playername) as response:
            page = response.read()
            page = str(page)
            levels = re.findall(r'[,\d\d,]', page)
            print(levels)

这是我要解析网页中的数字并将其存储在列表中的代码部分。如果您查看我的pythex链接,输出应为

Output: ['77', '80', '76', '91', ...

相反,我得到的输出是

Output: ['2', '9', '1', '2', '2', ...

我发布的代码有任何明显的问题吗?我认为用python编写表达式的方式有问题。

3 个答案:

答案 0 :(得分:0)

您不需要在表达式中使用方括号-这些用于字符类,表示“仅这些字符之一”。您的[,\d\d,]表达式实际上表示“逗号或数字或数字或逗号”。

您需要的是用于捕获组的括号:r',(\d\d),'

Regex101上的示例:https://regex101.com/r/FoaKZL/1

有关更多详细信息:https://docs.python.org/3/library/re.html

答案 1 :(得分:0)

尝试这个:

python: symbol lookup error: /home/julsoles/anaconda3/lib/python3.6/site-packages/torch/lib/libtorch_python.so: undefined symbol: PySlice_Unpack

输出:

def dropEvent(self, event: QDropEvent) -> None:
    if event.source() is self:
        super().dropEvent(event)
    else:
        event.setDropAction(Qt.CopyAction)
        self.addItem(event.mimeData().text())

答案 2 :(得分:0)

https://regex101.com中,有一个示例,说明了如何在Python中实现该功能以及如何仅获取数字(而不是逗号)

1. create a new table(CREATE TABLE XXX_new LIKE XXX)
2. load data into the new table(LOAD DATA FROM S3 ... INTO TABLE XXX_new ... )
3. rename table(RENAME TABLE XXX to XXX_old, XXX_new to XXX)