1

我怎样才能把它变成一个正则表达式?基本上,软件的版本号会因为新版本而不断更新,我想要一种使用通配符的方法。

例子:

Software Pro 0.1.0.123许可协议

注意:这行不通

Software Pro .* 许可协议

谢谢!

4

3 回答 3

2

您可能正在寻找的 RegEx 是:

"Software Pro [0-9\.]+ License Agreement"

即使您不知道版本号可以包含多少部分,这也将起作用(例如,如果将来开发人员决定他们只想显示主要和次要版本,例如:“0.1”而不是 0.1.0.123 ),但您知道它仅由数字和点组成。

如果版本号可以有字母,你可以使用:

"Software Pro [0-9a-z\.]+ License Agreement"

如果您尝试查找版本号并将其用于某事,请务必将其括在括号中:

"Software Pro ([0-9a-z\.]+) License Agreement"
于 2013-10-29T19:52:12.997 回答
2

这应该适合你。

haystack := "Software Pro 0.1.0.123 License Agreement"
RegExMatch(haystack, "[\d\.]+", match)
msgbox % match

[\d\.]+number匹配 a或.字符的任何连续组合。

于 2013-10-29T18:27:02.730 回答
1

^Software Pro ([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+) License Agreement$

较短的版本(如果 \d 支持数字):

^Software Pro (\d+\.\d+\.\d+\.\d+) License Agreement$

通常最好避免使用点.通配符。目标是让 RegEx 尽可能严格,并且只匹配您正在寻找的内容。

于 2013-10-29T17:54:20.237 回答