在一个单元格内的多行上进行正则提取

jak*_*kub 5 regex substitution google-sheets

在 Google 表格中,我将其放在一个单元格中:

Random stuff blah blah 123456789
<Surname, Name><123456><A><100><B><200>
<Surname2, Name2><456789><A><300><B><400>
Some more random stuff
Run Code Online (Sandbox Code Playgroud)

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

Surname, Name><123456><A><100><B><200
Run Code Online (Sandbox Code Playgroud)

这很好,但这只是第一行。所需的输出将是这样的(也许包括<>开头/结尾,这并不重要):

Surname, Name><123456><A><100><B><200>
<Surname2, Name2><456789><A><300><B><400
Run Code Online (Sandbox Code Playgroud)

或者简单地:

Surname, Name><123456><A><100><B><200><Surname2, Name2><456789><A><300><B><400
Run Code Online (Sandbox Code Playgroud)

到那里怎么走?

pnu*_*uts 2

请尝试:

=SUBSTITUTE(regexextract(substitute(A4,char(10)," "),"<(.*)>"),"> <",">"&char(10)&"<")
Run Code Online (Sandbox Code Playgroud)

从中间开始,用空格substitute替换换行符 ( char(10))。这使得regexextract完整的(即多行)字符串能够使用 OP 已经熟悉的相同模式进行处理。SUBSTITUTE然后用换行符恢复相关空间(确定为立即被><包围)。