Используйте шаблон '\\.H([0-9]+)'
, это означает буквально '.H' и одну или несколько цифр, извлеките группу захвата 1 (в скобках):
hive> select regexp_extract('/LIVERPOOL-HOTELS-THE-LINER-HOTEL.H1858765.HOTEL-INFORMATION','\\.H([0-9]+)',1);
OK
_c0
1858765
Time taken: 0.152 seconds, Fetched: 1 row(s)
hive> select regexp_extract('/AVON-GORGE-HOTEL.H444059.HOTEL-INFORMATION','\\.H([0-9]+)',1);
OK
_c0
444059
Time taken: 0.094 seconds, Fetched: 1 row(s)
hive> select regexp_extract('/NORTH-YORKSHIRE-HOTELS-ST-HILDAS-BOUTIQUE.H7265545.HOTEL-INFORMATION','\\.H([0-9]+)',1);
OK
_c0
7265545
Time taken: 0.056 seconds, Fetched: 1 row(s)
Вам необходимо экранировать символ точки для Presto с одинарной обратной косой чертой '\.H(\d+)'
:
select regexp_extract('LIVERPOOL-HOTELS-THE-LINER-HOTEL.H1858765.HOTEL-INFORMATION','\.H(\d+)',1);
Результат:
1858765
Также вы можете использовать \d+
вместо [0-9]+
как в Hive, так и в Presto