我尝试使用正则表达式提取 name1(第一行)、name2(第二行)、name3(第三行)和街道名称(最后一行):
Company Inc.
JohnDoe
Foobar
Industrieterrein 13
最后一行是街道名称,这部分已经开始工作了(文本存储在变量“S2”中)。
REGEXREPLACE(S2, "(.*\n)+(?!(.*\n))", "")
这个表达式将返回最后一行。我还可以提取第一行:
REGEXREPLACE(S2, "(\n.*)", "")
我的问题是,我不知道如何提取第二行和第三行....
另外,我如何测试文本是否包含一行、两行、三行或更多行?
更新:
正则表达式用于 Scribe(一种 ETL 工具)的上下文中。问题是我无法执行源代码,我只有以下功能:
REGEXMATCH(输入,模式)
REGEXREPLACE(输入、模式、替换)
最佳答案
如果正则表达式语言提供对前瞻的支持,您可以向后计算行数,从而得到(假设 .
不匹配换行符)
(.*)$ # matching the last line
(.*)(?=(\n.*){1}$) # matching the second last line (excl. newline)
(.*)(?=(\n.*){2}$) # matching the third last line (excl. newline)
关于regex - 正则表达式 : Extract the lines,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16786680/