【发布时间】:2015-03-13 21:27:21
【问题描述】:
我正在使用我在 stackexchange 上找到的 sn-p,它使用 re.findall() 查找字符串中的所有 url。它工作得很好,但是为了进一步了解我的知识,我想知道它是如何工作的。代码如下-
re.findall('http[s]?://(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*\(\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+', site)
据我了解,它会查找以 http 或 https 开头的所有字符串(这就是为什么 [s] 在方括号中的原因?)但我不太确定 (?:[etc etc etc]))+ 之后的所有内容。我认为方括号中的内容,例如。 [a-zA-Z] 表示从 a 到 z 的所有字母是否大写,但其余的内容呢?在 url 末尾只获取 url 而不是随机字符串是如何工作的?
提前致谢:)
【问题讨论】:
-
您可以将正则表达式插入regex101.com 以获得他们在做什么的纯文本解释。
标签: python regex python-3.x string-parsing findall