![回答](https://linux22.com/image/1630440/%E5%9B%9E%E7%AD%94.png)
我有以下字符串:
AA_Foo_Bar - ABC123.blah.com
我想要检索Bar
. 即第二个下划线和该下划线后的空格之间的文本。
我有这个,但它不太正确(其中 A2 是值):
=MID(A2, SEARCH("_",A2) + 1, SEARCH("_",A2,SEARCH("_",A2,)+1) - SEARCH(" ",A2) - 1)
答案1
回答
=MID(A1,FIND(CHAR(1),SUBSTITUTE(A1,"_",CHAR(1),2))+1,FIND(CHAR(1),SUBSTITUTE(A1," -",CHAR(1),1))-FIND(CHAR(1),SUBSTITUTE(A1,"_",CHAR(1),2)))
解释
首先找到第二个下划线的索引(答案 = 7)
=FIND(CHAR(1),SUBSTITUTE(A1,"_",CHAR(1),2))
接下来找到空格 + 破折号 ( ) 的第一个实例的索引" '"
(答案 = 11):
=FIND(CHAR(1),SUBSTITUTE(A1," -",CHAR(1),1))
现在从第一个索引 (+1 以切掉下划线) 获取字符串,这意味着:
=MID(A1,7+1,11-7)
现在只需7
用FIND(CHAR(1),SUBSTITUTE(A1,"_",CHAR(1),2))
和11
替换FIND(CHAR(1),SUBSTITUTE(A1," -",CHAR(1),1))
,Bob 就是你妈妈的兄弟。
答案2
尝试:
=FILTERXML("<t><s>"&SUBSTITUTE(SUBSTITUTE(A1," - ","_"),"_","</s><s>")&"</s></t>","//s[3]")
不太优雅的(在我看来)可能是:
=TRIM(MID(SUBSTITUTE(SUBSTITUTE(A1," - ","_"),"_",REPT(" ",100)),200,100))