坚持使用正则表达式



我被正则表达式困住了。我在下面有一行

blah blah blah; Installation started ; END OK; Execution Return Code: 0   ;

我正在尝试捕获返回代码。但是有一些返回代码前面有一个减号。示例-2231134

我似乎想不出一个正则表达式来捕获返回代码是否有减号。

如果前面有一个减号,下面的正则表达式就可以工作。如果我删除点,它没有减号。

(Execution Return Code:D.d+)

要检索整个字段,由于字段分隔符似乎;,我建议使用 Execution Return Code:[^;]* .

如果您只想检索数字(带有其可选符号),假设空格数是可变的,我会使用:

  • 第一组Execution Return Code:s*(-?d+)如果选择组很容易

  • 如果使用后视是可能的,则(?<=Execution Return Code:)s*-?d+的结果(请注意,它仍可能返回前导空格,因为后视必须是固定宽度)

"/Execution Return Code:s*(-d+)/i"

我想最简单的就是执行以下操作

Execution Return Code: (S)

在@rock321987的帮助下

执行返回代码:\D*([-]?\d+))

给我正确的返回代码。

谢谢大家。

最新更新