正则表达式在没有 space 的情况下提取第 5 和第 6 个冒号之间的字符串

regex to extract a string between 5th and 6th colon without space

我正在使用正则表达式提取第 5 和第 6 个字符串之间的字符串。我需要在没有 space 的情况下提取它,因为 space 在冒号之间。下面是我必须从中提取的示例

Abc Cloud : Xyz : Windows : Non Prod : Silver : ATC123XYZ : AQW Service is Down

我试过 : (.+?): 但是它 returns : Xyz :,: Non Prod : and : ATC123XYZ :.我要的只是ATC123XYZ

你可以试试:

^(?:[^:]+\s*:\s*){5}([^:\s]+)

Demo

解释:

^                 from the start of the input
(?:               match (but don't capture)
    [^:]+\s*:\s*  any term followed by :
){5}              match exactly 5 of these
([^:\s]+)         then match AND capture the 6th term

您需要的术语将在第一个捕获组中可用。