Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我正在尝试从不同的 RPM 列表中提取版本。下面是一个例子:
rpm = "abc-def-ghi-1.1.0-10.el6.x86_64"
这个变量可以有不同的字符串值,
rpm = "a-b-1.1.1-10.x86_64"
我的目标是使用“匹配”方法(如下所示)编写一个正则表达式 - 尽管这个不涵盖 .el6 方面。
rpm.match(/^#{rpmname_to_match}-(.*).x86_64$/).nil?
我不确定你想用 .el6 部分做什么,但如果你想要一个只匹配数字部分的模式,那么试试这个:
([0-9]+(?:(?:\.|-)(?:[0-9]+))*)
这将只匹配以一位或多位数字开头的字符串,然后可以包含任意数量的序列,即句点或连字符后跟一位或多位数字。
因此,您的最终陈述可能如下:
rpm.match(/^#{rpmname_to_match}-([0-9]+(?:(?:\.|-)(?:[0-9]+))*)(.*)\.x86_64$/).nil?