如何从单元格的第 n 行中提取所有内容? (在工作表中使用正则提取)
How do I extract everything from the nth line in cell? (using regextract in sheets)
我的目标是 return 第 4 行之后的所有行(在某些单元格中我可能有 2 行以上,在其他单元格中有 3 行或更多)。我可以使用 (\n.*){4}
和一个 isna 函数,但在某些单元格中我可能有第 5 行或更多行我想提取(没有它 return 如果没有第 4 行或更多行会出错单元格中的第 5 行)。我试过插入 $
以便它可以从字符串末尾获取所有内容,但不太清楚如何定位它。 see example
你可以试试:
B1
中的公式:
=INDEX(IFERROR(REGEXEXTRACT(A1:A,"^(?:.*\n){4}((?:.*\n?)+)"),""))
表达式 ^(?:.*\n){4}((?:.*\n?)+
匹配:
^
- 起始行锚点。
(?:.*\n){4}
- 除换行符外的 0+ 个字符后跟换行符恰好 4 次。
((?:.*\n?)+
- 一个捕获组,其中包含遵循相同模式但可选换行符的所有剩余行。
由于是捕获组,REGEXEXTRACT()
会return捕获该组中的子串,如果为空则报错;因此 IFERROR()
.
我的目标是 return 第 4 行之后的所有行(在某些单元格中我可能有 2 行以上,在其他单元格中有 3 行或更多)。我可以使用 (\n.*){4}
和一个 isna 函数,但在某些单元格中我可能有第 5 行或更多行我想提取(没有它 return 如果没有第 4 行或更多行会出错单元格中的第 5 行)。我试过插入 $
以便它可以从字符串末尾获取所有内容,但不太清楚如何定位它。 see example
你可以试试:
B1
中的公式:
=INDEX(IFERROR(REGEXEXTRACT(A1:A,"^(?:.*\n){4}((?:.*\n?)+)"),""))
表达式 ^(?:.*\n){4}((?:.*\n?)+
匹配:
^
- 起始行锚点。(?:.*\n){4}
- 除换行符外的 0+ 个字符后跟换行符恰好 4 次。((?:.*\n?)+
- 一个捕获组,其中包含遵循相同模式但可选换行符的所有剩余行。
由于是捕获组,REGEXEXTRACT()
会return捕获该组中的子串,如果为空则报错;因此 IFERROR()
.