2015-02-24 94 views
2

在谷歌表内,我有这样的一个单元格:REGEXEXTRACT多行一个细胞

Random stuff blah blah 123456789 
<Surname, Name><123456><A><100><B><200> 
<Surname2, Name2><456789><A><300><B><400> 
Some more random stuff 

,并想<>括号内匹配的字符串。 With = REGEXEXTRACT(A4, "<(.*)>")我到目前为止:

Surname, Name><123456><A><100><B><200 

这很不错,但它只是第一行。所需的输出应该是这样(也许包括<>在开始/结束,它其实并不重要):

Surname, Name><123456><A><100><B><200> 
<Surname2, Name2><456789><A><300><B><400 

或者干脆:

Surname, Name><123456><A><100><B><200><Surname2, Name2><456789><A><300><B><400 

如何到达那里?

+0

这个问题应该合并到https://webapps.stackexchange.com – 2017-10-02 13:53:55

回答

3

请尝试:

=SUBSTITUTE(regexextract(substitute(A4,char(10)," "),"<(.*)>"),"> <",">"&char(10)&"<") 

中间开始,substitute取代换行符(char(10))与空间。这使得regexextract完整的(即多行)字符串可以工作,具有与OP已经熟悉的相同的模式。 SUBSTITUTE然后用换行符恢复相关空间(标识为立即被><包围)。

+0

尽管这段代码可以解决这个问题,[包括解释](http://meta.stackexchange.com/questions/114762/explaining-完全基于代码的答案)确实有助于提高帖子的质量。请记住,您将来会为读者回答问题,而这些人可能不知道您的代码建议的原因。 – msrd0 2015-02-24 19:45:13

+0

真的!考虑到“这并不重要”等问题,我希望得到OP的一些反馈,以防上述情况不适合。 – pnuts 2015-02-24 19:49:18

+0

@pnuts看起来不错,谢谢你的解释!我会尝试一下,但就在我做之前,快速询问一下:由于我不关心结果分布在多行(这在我的原始问题中是不明显的),这是否可以以某种方式简化,理想情况下只使用正则表达式? (请参阅更新的问题)。 – jakub 2015-02-25 07:34:02