2015-02-24 131 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