Я работаю над регулярным выражением для извлечения строки между 5-й и 6-й строками. Мне нужно извлечь его без пробела, так как пробел находится между двоеточиями. Ниже приведен образец, из которого я должен извлечь
Abc Cloud : Xyz : Windows : Non Prod : Silver : ATC123XYZ : Служба AQW не работает
Я пробовал : (.+?):
, однако он возвращает: Xyz:,: Non Prod: и: ATC123XYZ:. Я хочу только ATC123XYZ.
Вы можете попробовать:
^(?:[^:]+\s*:\s*){5}([^:\s]+)
Объяснение:
^ 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
Нужный термин будет доступен в первой группе захвата.
Спасибо, это работает, как ожидалось. Я пытался понять это, получая это по частям. Для многих, таких как мы, будет здорово, если вы сможете расшифровать его шаг за шагом.