Ошибки Google Sheets в выражении REGEX - PullRequest
0 голосов
/ 28 сентября 2018

У меня есть выражение регулярного выражения, которое делает именно то, что мне нужно, но GoogleSheets REGEXEXTRACT показывает это как ошибку.Любые идеи?

Ячейка I2 содержит текст: "Статус 9/27 Проходной балл: 92,9%"

Формула в ячейке I3: = REGEXEXTRACT (I2, "[^:] + (?=%) ")

Ошибка в ячейке I3:« Значение параметра 2 функции REGEXEXTRACT "[^:] + (? =%)" Не является допустимым регулярным выражением. "

ЯчейкаI3 должен содержать "92,9"

-Greg

Ответы [ 2 ]

0 голосов
/ 28 сентября 2018

Без регулярного выражения, но немного короче, возвращает число (*1), и для некоторых может быть легче понять:

=left(right(I2,5),4)*1
0 голосов
/ 28 сентября 2018

Функции регулярных выражений в Google Spreadsheet, и REGEXEXTRACT, таким образом, также использует механизм регулярных выражений RE2, который не поддерживает обходные пути.

Вместо этого используйте группу захвата:

([^: ]+)%

См. regex demo .Здесь ([^: ]+) захватывает любые 1+ символов, кроме : и пробел в Группе 1, и это значение будет возвращено функцией REGEXEXTRACT, но только если % следует этому шаблону немедленно.

enter image description here

Еще одно регулярное выражение, которое вы можете использовать:

(\d*\.?\d+)%

См. еще одно демонстрационное выражение

Шаблон \d*\.?\d+соответствует 0+ цифрам, необязательный . и затем 1+ цифрам.Если вы не ожидаете .8 подобных чисел, используйте шаблон (\d+(?:\.\d+)?)%.

...