Есть ли способ использовать REGEX в Power Query (из Excel) без использования R? - PullRequest
0 голосов
/ 12 апреля 2020

Я хочу иметь возможность проверять адреса электронной почты (например, это будут номера телефонов и номера НДС, как только я смогу заставить это работать)

Я не достаточно силен, чтобы использовать R (если это действительно просто?)

Я пытался

42 -match '[0-9][0-9]'

, и он допустил ошибку с ожидаемым Token Eof (и немного красным волнистым между] [

ОБНОВЛЕНИЕ это пример регулярного выражения для простой проверки электронной почты

^([a-zA-Z0-9_\-\.]+)@([a-zA-Z0-9_\-\.]+)\.([a-zA-Z]{2,5})$

, поэтому я хотел бы использовать это в PowerQuery

dave@smith.com - все будет в порядке

@davesmith - ошибка

davesmith.com - ошибка

пожалуйста, дайте мне знать, если мне нужно добавить больше

1 Ответ

0 голосов
/ 12 апреля 2020

M не имеет RegEx, но можно написать функции проверки с более подробным кодом.

Например, вот один из способов написать функцию проверки, аналогичную вашему RegEx:

let
    IsValidEmail = (input as text) =>
    let
        name = Text.BeforeDelimiter(input,"@",{0,RelativePosition.FromEnd}),
        ext = Text.AfterDelimiter(input,".",{0,RelativePosition.FromEnd}),
        domain = Text.BetweenDelimiters(input,name&"@","."&ext),
        return =
            Text.Length(name) > 0 and
            Text.Length(domain) > 0 and
            Text.Length(ext) > 1 and Text.Length(ext) < 6 and
            name = Text.Select(name, {"a".."z","A".."Z","0".."9","_","-","."}) and
            domain = Text.Select(domain, {"a".."z","A".."Z","0".."9","_","-","."}) and
            ext = Text.Select(ext, {"a".."z","A".."Z"})
    in
        return
in
    IsValidEmail
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...