python - 关于正则表达式提取的非常基本的问题

标签 python regex

我需要提取具有以下结构的 URL 中指定的 ID:

https://trello.com/c/iGjJLqwr/1-test-project

在上面的例子中我想提取:

iGjJLqwr

我需要在 Zapier 中使用正则表达式,根据文档使用 Python 正则表达式

以下 Python 正则表达式在某种程度上是正确的方向,但它仍然返回太多:

[^https://trello.com/c/][\w]+

返回 3 个匹配项:

Match 1
Full match  21-29   iGjJLqwr
Match 2
Full match  31-36   -test
Match 3
Full match  36-44   -project

我需要将结果限制为:

iGjJLqwr

以下正则表达式返回一个额外的正斜杠

[^https://trello.com/c/]\w+/

Match 1
Full match  21-30   iGjJLqwr/

最佳答案

方括号[ ... ]创建一个字符集,选择其中包含的任何字符中的一个。如果在开头添加一克拉,[^ ... ] ,该集合被否定。该模式不考虑括号内完整、连续的字符串。

换句话说,[aaabbc]相当于 [abc] (甚至 [cba] )。

如果你只想捕获 https://trello.com/c/ 之后的第一个路径元素在组中,您可以使用以下模式:

https://trello\.com/c/([^/]+).*

演示:https://regex101.com/r/99FDJS/2

如果您希望模式仅匹配 URL 中的该子字符串,则可以使用正向前瞻和后向查找:

(?<=https://trello\.com/c/).+?(?=/.*)

演示:https://regex101.com/r/99FDJS/1

关于python - 关于正则表达式提取的非常基本的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55307966/

相关文章:

python - 如何使用 Python 读取 utf-8 编码的文本文件

Python 从字典中写入一个 JSON 临时文件

python - 如何检查输入是否为二进制格式(1 和 0)?

python - 查找两列合计不等于预定值的行

c# - 编写适当的正则表达式以允许数字和字母和数字的组合混合

regex - emacs 主模式定义

sql - PostgreSQL 和 regexp_split_to_array + unnest

python - ruby 是否有类似于 buildout 或 virtualenv 的东西?

java - 代码的正则表达式

正则表达式在 bash 中不起作用