在Google表格中,我在一个单元格中有这个:
Random stuff blah blah 123456789
<Surname, Name><123456><A><100><B><200>
<Surname2, Name2><456789><A><300><B><400>
Some more random stuff
并希望匹配<>
括号内的字符串。到目前为止,我得到了= 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
到那里怎么走?
请试试:
=SUBSTITUTE(regexextract(substitute(A4,char(10)," "),"<(.*)>"),"> <",">"&char(10)&"<")
从中间开始,substitute
用空格替换换行符(char(10)
)。这使得regexextract
能够处理完整(即多线)字符串,其模式与OP已经熟悉的相同。然后SUBSTITUTE
恢复相关空间(确定为立即被>
和<
包围)并换行。
Google表格使用RE2 syntax。您可以设置multi-line
和s
标志以匹配多行。以下内容将匹配单元格A2中多行的所有字符。
=REGEXEXTRACT(A2, "(?ms)^(.*)$")