python - 跳过从正则表达式中的字符开始

标签 python regex

我有一个像这样的字符串:

:v3.11.3-4.38

我想在名为 version 的变量中获取 :v3.11.3 (并跳过 -4.38)。

我正在尝试这个但没有帮助:

^.*:(v?)(?P<version>.*(?:-.*)$)

是否可以在捕获组中跳过连字符(或任何特定字符)和以下字符?

最佳答案

您似乎想要获取满足 :v?<version-number> 的行上最后一个匹配的版本模式。

您可以使用

^.*:v?(?P<version>\d+(?:\.\d+)*)

移动(如有必要,可以使用括号调整命名组的开头。

请参阅regex demo .

详细信息

  • ^ - 字符串开头
  • .* - 除换行符之外的任意 0 个或多个字符,尽可能多
  • :v? -::v
  • (?P<version>\d+(?:\.\d+)*) - 命名捕获组version : 1+ 位数字,然后是 0 个或多个 . 序列和 1+ 位数字。

关于python - 跳过从正则表达式中的字符开始,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57480397/

相关文章:

python - 用/openmp编译的模块无法导入?

javascript - 如何匹配特定字符后的文本?

regex - 除非引号,否则删除行尾注释

Python:确定固定长度列的通用算法

python - 线程中的pyGame

python - 如何从 Python(旧版)格式字符串中提取字段名称?

java - Android Regex - 如何在数字后面添加连字符?

php - 正则表达式匹配已定义超文本的超链接

python - 2018 年 10 月 1 日之前 20 天 ("Pandas")

python - 列表中每个元素的总和