提取重复字符之间的字符串?

提取重复字符之间的字符串?

当我在 Excel 中尝试这样做时,我似乎无法弄清楚正确的使用方法FIND SEARCH MIDLEFT

以下是一个字符串的示例:

""["{\".tag\": \"file\", \"path\": {\"namespace_relative\": {\"ns_id\": \"7967408752\", \"relative_path\": \"/Assets Creative/National/2021 Brand Winter/Web/Nana-FR-16x9_WEB15F.mp4\", \"is_shared_namespace\": true}}, \"display_name\": \"Tana-FR-16x9_WEB15F.mp4\", \"file_id\": \"id:rAWlCkcfulAAAAAAAAKx4g\"}"]""

附有引文。

都在同一个电子表格中。我试图提取以下之间的文本:

"relative_path\": \"", \"is_shared_namespace\": true}},

因此这将是(字符串中Assets Creative/National/2021 Brand Winter/Web/Nana-FR-16x9_WEB15F.mp4没有/and )\

我会继续努力,但非常感谢大家的帮助。

编辑 我想我得到了答案:

=MID(M4,FIND("/Ass",M4)+1,FIND("is_shared",M4)-FIND("/Ass",M4)-7)

我不确定这是正确答案还是最佳答案,但它输出了目前我需要的内容。我现在担心的是文件是否不以 mp4 结尾

谢谢,

答案1

对此有很多解决方案。当我考虑用逗号分隔的地址字符串时,我已将所有这些解决方案都收集在了这篇文章中。

http://www.mkrgeo-blog.com/good-way-to-sanitizing-a-bulk-address-list-part-1-excel-vba/

我认为,您可以考虑 FILTERXML 函数:

   =FILTERXML(“<t><s>”&SUBSTITUTE(F1,”, “,”</s><s>”)&”</s></t>”,”//s[position()=last()-1]”)

或 MID 函数,正如你所说:

   =MID(A1, SEARCH(“,”,A1) + 1, SEARCH(“,”,A1,SEARCH(“,”,A1)+1) – SEARCH(“,”,A1)-1)

尽管 MID 和 FILTERXML 函数之间的差异很大,但 MIN() 函数允许我们在第一个字符出现后立即提取文本。通过使用 FILTERXML() 函数,您可以从长字符串中的任何随机位置提取字符串,只要您不会在顺序计算中迷失方向即可。每个特定字符的出现,而空格应从左到右计算。

在这种情况下,当您需要从主字符串中间获取两个子字符串时,您可以扩展上述公式:

       =TEXTJOIN(“, “,,FILTERXML(“<t><s>”&SUBSTITUTE(A1,”, “,”</s><s>”)&”</s></t>”,”//s[position()=2 or position() =3]”))

添加 TEXTJOIN() 函数后,所有内容都会放在一个单元格中(不会溢出)。

        =MID(A1, SEARCH(“,”,A1) + 1, SEARCH(“,”,A1,SEARCH(“,”,A1,SEARCH(“,”,A1)+1)+1) – SEARCH(“,”,A1)-1)

在这里查看更多提示:

https://www.ablebits.com/office-addins-blog/2016/06/01/split-text-string-excel/

https://stackoverflow.com/questions/61837696/excel-extract-substrings-from-string-using-filterxml

https://stackoverflow.com/questions/65955114/vba-excel-if-condition-for-splitting-address-columns

答案2

=MID(A1,FIND(String1,A1)+LEN(String1)+1,FIND(String2,A1)-(FIND(String1,A1)+LEN(String1)+1)-1)

或者,如果您想对字符串进行硬编码,则需要用双引号来转义双引号:

=MID(A1,FIND("""relative_path\"": \""",A1)+LEN("""relative_path\"": \""")+1,FIND(""", \""is_shared_namespace\"": true}}",A1)-(FIND("""relative_path\"": \""",A1)+LEN("""relative_path\"": \""")+1)-1)

相关内容