我是regexp_extract
的新手,需要拆分/
上的列,然后选择第三个值。例如,来自
application/motorola products/routers
想要得到
routers
。如果没有第三个值,那么我们需要回退到第二个值,即motorola products
。我尝试了以下正则表达式模式,但不起作用:(.*?\/)(.*?\/)(.*?)(\/.*\/)
最佳答案
您是说单个字符是可选的。给.
一个quantifier *
或+
。我认为这个正则表达式实际上会更好:
(?:([^\/]+?\/)([^\/]+?)\/([^\/]*)|([^\/]+?\/)([^\/]+))
演示:https://regex101.com/r/dX6uQ9/2
我尚未使用/没有
hive
,因此无法确认是否可以使用,但是我认为这应该使您走得更近。