Образец текста:Regex Match текст в Capture Группа
\- !ruby/object:DynamicAttribute
attributes:
resource_id: "1"
resource_type: Applicant
string_value: "Michael"
int_value:
id: "35972390"
date_value:
name: first_name
attributes_cache: {}
\- !ruby/object:DynamicAttribute
attributes:
resource_id: "1"
resource_type: Applicant
string_value: "Johnson"
int_value:
id: "35533149"
date_value:
name: last_name
attributes_cache: {}
Цель:
Я пытаюсь извлечь значение после того, как «string_value», где «имя» равна некоторой строке , Предположим, что оно равно last_name. Атрибуты не в каком-либо определенном порядке. Я исследовал использование групп захвата, но я не очень далеко.
Любая помощь по этому вопросу будет оценена по достоинству. Благодаря!
Это должно быть полезным: http://stackoverflow.com/questions/19193251/ regex-to-get-the-words-after-matching-string – Travis
Спасибо @Travis Это помогает. Однако в этом примере «Имя объекта» уникально. В моем случае string_value может повторять бесконечное число раз. Я могу получить строку после «string_value», но «имя» должно быть равно определенному значению внутри одного и того же блока. – Moody
Ответ на этот вопрос зависит от следующего: какой инструмент вы используете для выполнения регулярного выражения? И что вы хотите делать с каждым матчем? В зависимости от вашего инструмента, самым простым решением будет просто цикл и поиск снова из предыдущего местоположения + 1, пока не будет найдено больше совпадений. * (что обязательно будет использовать язык, отличный от регулярного выражения, чтобы управлять поиском, хотя) * – Travis