【发布时间】:2017-04-26 05:44:19
【问题描述】:
示例文本:
\- !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”之后的值,其中“name”等于某个字符串。假设它等于last_name。这些属性没有任何特定的顺序。我已经探索过使用捕获组,但我没有走多远。
对此的任何帮助将不胜感激。谢谢!
【问题讨论】:
-
谢谢@Travis 这有帮助。但是,在该示例中,“对象名称”是唯一的。就我而言, string_value 可以重复无数次。我可以在“string_value”之后检索字符串,但是“name”需要在同一个块中等于某个值。
-
答案取决于以下几点:您使用什么工具来执行正则表达式?你想对每场比赛做什么?根据您的工具,最简单的解决方案就是从先前的位置 + 1 循环并再次搜索,直到找不到更多匹配项。 (不过,这必然会使用正则表达式以外的语言来驱动搜索)
-
这将是 SQL 搜索的一部分。我会显示值。
-
知道了。是的,这是我想看看这是否可以用正则表达式完成的第一条路径。我会走一条更传统的路线并编写脚本。
标签: regex string regex-lookarounds capture-group