извлечение регулярного выражения в студии данных Google

Я хочу создать вычисляемое поле в студии данных Google, которое возвращает только числа в начале строки, которые могут выглядеть так:

123-something-something1
or
32-something-something2
or
1234-somthing-something3

Я думал, что у меня правильное регулярное выражение, но оно возвращает только null, что означает неправильное регулярное выражение.

Регулярное выражение, которое я пробовал:

REGEXP_EXTRACT(Campagne, '.*')
REGEXP_EXTRACT(Campagne, '^[0-9].[0-9]*')
REGEXP_EXTRACT(Campagne, '[0-9].[0-9]*')
REGEXP_EXTRACT(Campagne, '^[0-9]*')
REGEXP_EXTRACT(Campagne, '[0-9]*')
REGEXP_EXTRACT(Campagne, '^[0-9].[0-9]*')
REGEXP_EXTRACT(Campagne, '[0-9].[0-9]*')
  • ^ это должно стоять в начале значения
  • [0-9] следует считать любое число
  • . должен соответствовать любому символу
  • * считается множителем предыдущего символа

Очень надеюсь, что кто-то может мне помочь, так как я не могу заставить его работать


person Graham    schedule 06.11.2017    source источник
comment
Попробуйте REGEXP_EXTRACT(Campagne, '^([0-9]+)') или REGEXP_EXTRACT(Campagne, '^([0-9]+).*')   -  person Wiktor Stribiżew    schedule 06.11.2017
comment
Можете ли вы добавить первое регулярное выражение в качестве ответа. Это исправило это для меня. Так что знак + похож на *?   -  person Graham    schedule 06.11.2017
comment
Дело в том, чтобы сопоставить и захватить цифры в начале строки. Должна быть 1) как минимум 1 цифра и 2) группа захвата.   -  person Wiktor Stribiżew    schedule 06.11.2017


Ответы (1)


Дело в том, чтобы сопоставить и захватить цифры в начале строки. Должна быть 1) как минимум 1 цифра и 2) группа захвата.

Вы можете извлечь первые цифры, используя

REGEXP_EXTRACT(Campagne, '^([0-9]+)')

Шаблон соответствует:

  • ^ - начало строки
  • ([0-9]+) - Группа захвата 1 (то, что вы извлекаете): одна или несколько (+) цифр ([0-9]).
person Wiktor Stribiżew    schedule 06.11.2017