我正在处理订单数据的大型电子表格,该电子表格使用一种独特的散列语法字符串来表示订单商品和属性。
我目前在Google表格中有这些数据,我希望能够利用REGEXEXTRACT函数(https://support.google.com/docs/answer/3098244)来检索每行所需的信息。
功能示例:REGEXEXTRACT(“大海捞针”,“。e {2} dle”)
订单数据很大,我相信我可以使用这个正则表达式函数来隔离我想要的信息。
我需要使用的字符串片段部分的示例。请记住实际的订单字符串比这要长得多:
因此每行中的公共字符串是Location,因为在每个订单中多次使用值。
让我看看我是否可以正确地表达这一点:我如何使用正则表达式来指定紧跟在字符串'Location'之后的第4和第5双引号之间的值,以便在上面的示例中,结果将是亚特兰大,纽约,barrio de boedo?
作为参考,barrio de boedo的例子全部如下: \ “; S:7:\” 产品\ “; S:2:\” 31 \ “; S:8:\” form_key \ “; S:16:\” aasdf \“; S:7: \“options \”; a:2:{i:1; s:1:\“2 \”; i:2; s:15:\“barrio de boedo \”;} s:15:\“super_attribute \ “;一个:2:{I:92; S:1:\” 4 \ “; I:132; S:1:\” 9 \ “;} S:3:\” 数量\“; S:1: \ “1 \”;} S:7:\ “选项\”;一个:2:{I:0;一个:7:{S:5:\ “标签\”; S:15:\“语言 - 性别\ “; S:5:\” 值\ “; S:8:\” 水疗男性\ “; S:11:\” print_value \ “; S:8:\” 水疗男性\“; S:9 :\ “option_id \”; S:1:\ “1 \”; S:11:\ “option_type \”; S:9:\ “DROP_DOWN \”; S:12:\ “请将option_value \”; S:1 :\ “2 \”; S:11:\ “custom_view \”; b:0;} I:1;一个:7:{S:5:\ “标签\”; S:8:\ “位置\” ; s:5:\“value \”; s:15:\“barrio de boedo \”; s:11:\“print_value \”; s:15:\“barrio de boedo \”; s:9:\ “option_id \”; S:1:\ “2 \”; S:11:\ “option_type \”; S:5:\ “字段\”; S:12:\ “请将option_value \”; S:15:\ “barrio de boedo \”; s:11:\“custom_view \”; b:0;}} s:15:\“attributes_info \”; a:2:{i:0; a:2:{s:5 :\ “标签\”; S:5:\ “颜色\”; S:5:\ “值\”; S:4:\ “灰色\”;} I:1; A:2:{S:5 :\ “标签\”; S:4:\ “大小\”; S:5:\ “值\”; S:1:\ “L \”;}} S:11:\ “simple_name \”; S :14:\ “T恤灰色-L \”; S:10:\ “simple_sku \”; S:14:\ “T恤灰色-L \”; S:20:\“produc t_calculations \ “; I:1; S:13:\” shipment_type \ “; I:0;}”
答案 0 :(得分:1)
您需要在REGEXEXTRACT
中使用以下模式:
"Location\\?(?:""[^""]*){3}""([^""]+)\\"""
请参阅regex demo。
模式为Location\\?(?:"[^"]*){3}"([^"]+)\\"
,匹配:
Location
- 子字符串Location
\\?
- 1个或0个\
符号(?
使模式可选)(?:"[^"]*){3}
- 正好有3次出现(由于限制量词{3}
)"
后跟0或更多(由于*
量词)的字符而不是"
([^...]
是一个否定的字符类,匹配任何字符,但在类中定义的字符)"
- 单引号([^"]+)
- 捕获组#1 (其内容将与REGEXEXTRACT
一起返回):1个或更多(由于+
量词)字符以外的字符"
\\"
- \"
子字符串。