建立企业网站的形式有哪些,泰安北京网站建设,云服务器搭建个人网站,程序员帮忙做放贷网站今天搓一个sage脚本遇到一个很无语的问题#xff0c;经过调试#xff0c;发现是pwntools库中的findall方法和re库中的findall方法重名导致的。这两个findall方法的用法完全不一样#xff0c;稍有不慎就会踩坑。 文章目录 区分问题引发如何规避 区分
re 是 Python 中用于处理… 今天搓一个sage脚本遇到一个很无语的问题经过调试发现是pwntools库中的findall方法和re库中的findall方法重名导致的。这两个findall方法的用法完全不一样稍有不慎就会踩坑。 文章目录 区分问题引发如何规避 区分
re 是 Python 中用于处理正则表达式的内置模块findall 是 re 模块中的一个函数用于在输入的字符串中查找所有匹配指定模式的子串并以列表的形式返回这些子串。例如
from re import findall
result findall(r\d, 12 drummers drumming, 11 pipers piping, 10 lords a-leaping)
print(result) # 输出: [12, 11, 10]在这个例子中findall 函数使用正则表达式 \d 在输入的字符串中查找所有的数字并返回一个包含所有匹配数字的列表。
在pwntools中的findall方法主要使用KMP算法来获取一个数组中某个元素的所有下标。
def findall(haystack, needle):findall(l, e) - lGenerate all indices of needle in haystack, using theKnuth-Morris-Pratt algorithm.Example: foo findall([1,2,3,4,4,3,4,2,1], 4) next(foo)3 next(foo)4 next(foo)6 list(foo) # no more appearances[] list(findall(aaabaaabc, aab))[1, 5]问题引发
如果在python的IDE中如pycharm那么写代码的时候就容易发现这个问题。但是如果在sage中没有明显的语法提示很容易就出现这个问题。 如果你使用了from pwn import *且from re import findall导入语句在其之前那么就会使用pwntools中的findall方法。
令人火恼的是不会报语法错误而是不经意间结果错了需要你仔细调试才能发现这个问题不经意间你的时间就被浪费了。
如何规避
尽量不要使用from xxx import *用什么方法在后面详细写出来。如果要使用类似from xxx import *的语句将其放到最前面这样后面的import会将里面的方法覆盖掉。 ATFWUS 2024-01-23