正则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}}
你可能也想考虑逃离外部{
和}
,只是为了明确它们不是重复定义的一部分。