问题:寻找 Google Sheets regex 来捕获字符串的所有实例[t- ]
并将其作为数组输出到相邻的列单元格,或者匹配项之间的其他一些分隔符。
对于以下字符串,我正在尝试提取[t- ]
.
A1:
Lorem Ipsum [t- 只是] [t- 印刷]和排版 [c- 行业] 的虚拟文本,因此 [d- 这将是有意义的]
预期输出是单个列中所有出现的数组:
乙1:
[简单地,印刷]
或者输出可以是匹配出现的任何分隔符
很简单| 印刷
尝试在单个文本中执行以下操作[t- ]
可以正常工作,但对于多个实例,它会提取[t-
第一次出现和]
最后一次出现之间的所有内容:
=REGEXEXTRACT(A1,"\[t- (.*)\]")
导致:
简直]![t- 打印的虚拟文本
我也尝试过多个捕获组,但这仅在我确定之间只有两个文本实例时才有效[t- ]
——n
每行可能有实例。此外,它不会将结果输出到一列中的数组,而是分布在多列中:
=regexextract(A1, "(\[t- (.*)\]).*(\[t- (.*)\])" )
编辑:我收到了几个关于 Regex 的答案,这些答案适用于其他工具/语言(例如 PHP 或 Javascript),但不适用于 Google 表格。这是Google Sheets Regex Syntax。
编辑 2:上面的示例字符串在括号内有其他文本,用其他字母标记,例如,[c- industry]
和[d- it would make]
。这些不应该包括在内。只[t- ]
应返回发短信(带有“t-”)。
类似于这里使用的技术,
REGEXREPLACE
都[t-.*]
到(.*)
REGEXEXTRACT
\Q..\E
用于转义其他字符
=REGEXEXTRACT(A1, "\Q"®EXREPLACE(A1,"\[t-[^]]+\]","\\E(.*)\\Q")&"\E")
或者,仅REGEXREPLACE
用于分隔,
=REGEXREPLACE(A1,"(^|\])(.*?)(\[t-|$)","$1|$3")
=SPLIT(REGEXREPLACE(A1,"(^|\])(.*?)(\[t-|$)","$1|$3"),"|")
全部替换字符.*
是
]
字符串开头或开头^
[t-
字符串结尾或结尾$
和 ]|[t-
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句