正则expression式 – 可变长度匹配号码

我试图parsing一个文件,其中有参考编号遍布它。

在{222:115}之后的文本文本文本{4:2}更加令人难以置信的{4:3}文本更多,而更多的文本。

引用将总是被包裹在括号中,并且在两者之间将总是冒号。 我写了一个expression式来find它们。

{[0-9]:[0-9]} 

然而,当你遇到两三位数字的时候,这显然是失败的,我很难弄清楚应该是什么。 将不会有超过3个数字{999:999}是处理的最大尺寸。

任何人有一个适当的expression处理这个想法?

 {[0-9]+:[0-9]+} 

尝试添加加(es)

你使用的是什么正则expression式引擎? 他们大多会支持以下expression方式:

 \{\d+:\d+\} 

\d实际上是[0-9]缩写,但重要的部分是+的加法,意思是“一个或多个”。

尝试这个:

 {[0-9]{1,3}:[0-9]{1,3}} 

{1,3}意思是“前面的字符1和3之间的匹配”。

您可以使用{min,max}指定希望前一个项目匹配的次数。

 {[0-9]{1,3}:[0-9]{1,3}} 

此外,对于大多数正则expression式风格,您可以使用\d而不是[0-9]

 {\d{1,3}:\d{1,3}} 

你可能也想考虑逃离外部{} ,只是为了明确它们不是重复定义的一部分。