我正在做一个个人项目,这是我第一次使用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编写表达式的方式有问题。
答案 0 :(得分:0)
您不需要在表达式中使用方括号-这些用于字符类,表示“仅这些字符之一”。您的[,\d\d,]
表达式实际上表示“逗号或数字或数字或逗号”。
您需要的是用于捕获组的括号:r',(\d\d),'
Regex101上的示例:https://regex101.com/r/FoaKZL/1
答案 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)