正则表达式匹配Ruby中已知字符串后的1-3位数

Und*_*ion 4 ruby regex string numbers

我需要匹配以下字符串中的数字.它们可能是较长字符串的一部分,其中包含其他数字,因此我特别希望匹配在"错误代码"文本后面的空格后直接出现的数字:

Error Code 0  # Match = 0
Error Code 45 # Match = 45
Error Code 190 # Match = 190
Run Code Online (Sandbox Code Playgroud)

也可能:

Some Words 12 Error Code 67 Some Words 77 # Match = 67
Run Code Online (Sandbox Code Playgroud)

我正在使用,someString.match(regEx)[0]但我无法正确使用正则表达式.

Bla*_*ble 18

/(?:Error Code )[0-9]+/
Run Code Online (Sandbox Code Playgroud)

这使用非捕获组(在所有正则表达式实现中都不可用.)它会说,嘿String更好地拥有这个短语,但我不希望这个短语成为我的匹配的一部分,只是后面的数字.

如果您只想匹配1到3位数:

/(?:Error Code )[0-9]{1,3}/
Run Code Online (Sandbox Code Playgroud)

使用Ruby,你的正则表达式应该受到很少的限制.除了条件之外,没有太多Ruby的正则表达式无法做到.


Bri*_*lta 7

给定字符串"Error Code 190",这将返回"190"而不是"Error Code",就像这里提供的另一个正则表达式示例一样.

(?<=Error Code.*)[0-9]
Run Code Online (Sandbox Code Playgroud)