Skip to content

Instantly share code, notes, and snippets.

@NotJustAnna
Last active July 11, 2022 19:12
Show Gist options
  • Save NotJustAnna/22607b5e4d1cd9c1065320dbdaf09354 to your computer and use it in GitHub Desktop.
Save NotJustAnna/22607b5e4d1cd9c1065320dbdaf09354 to your computer and use it in GitHub Desktop.

Hello, World!

Text:

Hello, World!

Pattern (exact): Hello, World!

Pattern (any char): .+

Pattern (words): \w+

Pattern (capitalized words): [A-Z]\w+

Input Validation

Name="João Albuquerque da Cunha Filho"
Email="[email protected]"
EstadoCivil="Casado"
Cargo="Assistente de Auxiliar de Servente de Pedreiro"
Salário="R$ 1.095,00"

Pattern (Validate name/cargo): Exercise left to the presenter.

Pattern (Validate email): Exercise left to the presenter. Explain email validation problem.

Pattern (Validate estado civil): Casado > CASADO > CASAD[OA] > (?:CASAD|SOLTEIR|VI[ÚU]V)[O|A]

Pattern (Validate money): R\$\s*[\d.]*(,\d\d)?

"R$ 1.095,00"
"R$1095,00"
"$1,095.00"
"USD 1,095.00"
"US$ 1095.00"

Pattern (Validate R$ / USD): (R\$\s*[\d.]*(,\d\d)?)|((USD|(US)?\$)\s*[\d,]*(.\d\d)?)

(Caveat: no punctuation validation)

Viewer-submitted Pattern: (R\$\s*(\d{0,2}.?)?(\d{3}.?)*(,\d\d))|((USD|(US)?\$)\s*(\d{0,2},?)?(\d{3},?)*(.\d\d))

CSV

Uma empresa te manda uma planilha CSV malformada com suas várias filiais para você cadastrar elas no banco.

Text:

ID   , Nome                , Bairro                                 , Cidade    , UF, Terceirizado
-----,---------------------,----------------------------------------,-----------,---,-------------
0001 , Superloja Consolação, Consolação                             , São Paulo , SP, false
0002 , Loja filial Lapa    , Lapa                                   , São Paulo , SP, False
003  , Loja Carrefour Moca , Moca                                   , São Paulo , SP, true
-----,---------------------,----------------------------------------,-----------,---,-------------
0101 , Loja principal        Cidade Nova                            , Indaiatuba, SP, false
0103 , Quiosque Polo       , Polo Shopping                          , Indaiatuba, SP, Yes
00102, Superloja Indaiá    , Jardins Califórnia, Patrícia e Eldorado, Indaiatuba, SP, no

Pattern (separators): -+ > [-,]+ (oops) > -+, > (-+,)+ > (-+,?)+

Pattern (columns): [\wÀ-ü ]+ > [\wÀ-ü ]+,? > ([\wÀ-ü ]+,?)+

"À-ü" = unicode range of most latin-based alphabetic characters

Pattern (VALID columns): (flags /gm) ([\wÀ-ü ]+,?)+ > ([\wÀ-ü ]+,?){5} > ^([\wÀ-ü ]+,?){5} > ^([\w\dÀ-ü ]+,){5}([\w\dÀ-ü ]+)$

Flag m (multiline) -> RegEx Reference -> Anchors

Pattern (INVALID columns): (flags /gm) ^([\w\dÀ-ü ]+,){4}([\w\dÀ-ü ]+)$ AND ^([\w\dÀ-ü ]+,){6}([\w\dÀ-ü ]+)$

Substitute (fix false/no): (flags /g) false > (F|f)alse > [Ff]alse > [Ff]alse|no > (flags /gi) false|no

Substitute (fix true/yes): Exercise left to the presenter.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment