我在 Impala 中使用正则表达式函数来查找文件路径中的文件夹名称,但它似乎没有给我正确的结果
我想从这个文件路径中解析出“一”:
/this/one/path/to/hdfs
这是我使用的正则表达式:
regexp_extract(filepath,'[/]+',0)
如果我们想在这里捕获/
,那么我们可能只想尝试([\/]+)
。应该还有其他的表达式可以提取one
还有,比如:
(?:\/[a-z]+\/)(.+?)(?:\/.+)
我们的代码可能如下所示:
regexp_extract(filepath, '(?:\/[a-z]+\/)(.+?)(?:\/.+)', 2)
or
regexp_extract(filepath, '(?:\/.+?\/)(.+?)(?:\/.+)', 2)
隔间
在这种情况下,我们没有捕获背后的内容one
使用非捕获组:
(?:\/[a-z]+\/)
然后我们捕获one
using:
(.+?)
最后我们添加一个右边界one
在另一个非捕获组中:
(?:\/.+)
正则表达式电路
可视化正则表达式:
DEMO https://regex101.com/r/Sj7GGe/1
取决于哪个斜杠,one
可能找到了,我们可以修改我们的表达。例如,在本例中,此表达式也可能有效:
(?:\/.+?\/)(.+?)(?:\/.+)
DEMO https://regex101.com/r/t4cfZq/1
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)