regex 如何使用正则表达式从maven坐标中提取groupId,artifactid和version?

rryofs0p  于 2023-02-05  发布在  Maven
关注(0)|答案(1)|浏览(149)

我尝试了(.+?):(.+)((?::).+)?来测试以下内容:
androidx.hilt:hilt-compiler

  • 第1组:安卓手柄
  • 组2:hilt编译器
  • 第三组:

androidx.hilt:hilt-compiler:1.2.3

  • 第1组:安卓手柄
  • 组2:hilt编译器:1.2.3
  • 第三组:

我希望第二个是

  • 第1组:安卓手柄
  • 组2:hilt编译器
  • 组3:1.2.3

我试过不同的正则表达式,但都不起作用。

izkcnapc

izkcnapc1#

您可以将模式编写为:

^([^:\n]+):([^:\n]+)(?::([^\n:]+))?$
    • 说明**
  • ^字符串开始
  • ([^:\n]+)组1,匹配1+个字符,但不匹配:或换行符
  • :([^:\n]+)匹配:,然后是匹配1+个字符的组2,而不是:或换行符
  • (?:非夺获组
  • :([^\n:]+)匹配:,然后是匹配1+个字符的组3,而不是:或换行符
  • )?关闭非捕获组并将其设为可选
  • $字符串结束

Regex demo

相关问题