Přeskočit obsah

Výrazy pro analýzu¤

Přehled¤

Výrazy pro analýzu jsou funkce pro analýzu určité sekvence znaků.

Základní analyzátory mohou rozlišovat mezi číslicemi, písmeny a mezerami:

Následující výrazy se používají pro analýzu znaků z vlastního souboru znaků a hledání specifických znaků v vstupních řetězcích:

Následující výrazy se používají pro analýzu dat a časů v různých formátech:

  • !PARSE.DATETIME: Analyzovat datum a čas.
  • !PARSE.MONTH: Analyzovat měsíc v různých formátech.
  • !PARSE.FRAC: Analyzovat desetinná čísla (což je užitečné pro analýzu mikrosekund).

Následující výrazy se používají pro analýzu specifických typů řetězců:


!PARSE.DIGIT¤

Analyzovat jednu číslici.

Typ: Analyzátor.

Synopse:

!PARSE.DIGIT

Example

Vstupní řetězec: 2

!PARSE.DIGIT

!PARSE.DIGITS¤

Analyzovat sekvenci číslic.

Typ: Analyzátor.

Synopse:

!PARSE.DIGITS
min: <...>
max: <...>
exactly: <...>
  • exactly určuje přesný počet číslic k analýze.
  • min a max určují minimální a maximální počet číslic k analýze. Nemohou být kombinovány s parametrem exactly.
  • Pokud není uvedeno žádné z polí min, max a exactly, analyzuje se co nejvíce číslic.

Warning

Pole exactly nelze použít společně s poli min nebo max. A samozřejmě hodnota max nemůže být menší než hodnota min.

Example

Vstupní řetězec: 123

!PARSE.DIGITS
max: 4
Více příkladů Analyzovat co nejvíce číslic:
!PARSE.DIGITS
Analyzovat přesně 3 číslice:
!PARSE.DIGITS
exactly: 3
Analyzovat alespoň 2 číslice, ale ne více než 4:
!PARSE.DIGITS
min: 2
max: 4

!PARSE.LETTER¤

Analyzovat jedno písmeno.

Pod písmeny máme na mysli latinská písmena od A do Z, jak velká, tak malá.

Typ: Analyzátor.

Synopse:

!PARSE.LETTER

Example

Vstupní řetězec: A

!PARSE.LETTER

!PARSE.LETTERS¤

Analyzovat sekvenci písmen.

Pod písmeny máme na mysli latinská písmena od A do Z, jak velká, tak malá.

Typ: Analyzátor.

Synopse:

!PARSE.LETTERS
min: <...>
max: <...>
exactly: <...>

Pole min, max a exactly jsou volitelná.

Warning

Pole exactly nelze použít společně s poli min nebo max. A samozřejmě hodnota max nemůže být menší než hodnota min.

Example

Vstupní řetězec: cat

!PARSE.LETTERS
max: 4
Více příkladů Analyzovat co nejvíce písmen:
!PARSE.LETTERS
Analyzovat přesně 3 písmena:
!PARSE.LETTERS
exactly: 3
Analyzovat alespoň 2 písmena, ale ne více než 4:
!PARSE.LETTERS
min: 2
max: 4

!PARSE.SPACE¤

Analyzovat jeden znak pro mezeru.

Typ: Analyzátor.

Synopse:

!PARSE.SPACE

!PARSE.SPACES¤

Analyzovat sekvenci znaků pro mezeru.

Analyzovat co nejvíce znaků pro mezeru:

Typ: Analyzátor.

Synopse:

!PARSE.SPACES

!PARSE.CHAR¤

Analyzovat jeden znak jakéhokoli typu.

Typ: Analyzátor.

Synopse:

!PARSE.CHAR

Example

Vstupní řetězec: @

!PARSE.CHAR

!PARSE.CHARS¤

Analyzovat sekvenci znaků.

Typ: Analyzátor.

Synopse:

!PARSE.CHARS
min: <...>
max: <...>
exactly: <...>

Pole min, max a exactly jsou volitelná.

Warning

Pole exactly nelze použít společně s poli min nebo max. A samozřejmě hodnota max nemůže být menší než hodnota min.

Example

Vstupní řetězec:_ name@123_

!PARSE.CHARS
max: 8

Tip

Použijte !PARSE.CHARS s výchozími nastaveními pro analýzu až do konce řetězce.

Více příkladů Analyzovat co nejvíce znaků:
!PARSE.CHARS
Analyzovat přesně 3 znaky:
!PARSE.CHARS
exactly: 3
Analyzovat alespoň 2 znaky, ale ne více než 4:
!PARSE.CHARS
min: 2
max: 4

!PARSE.EXACTLY¤

Analyzovat přesně definovanou sekvenci znaků.

Typ: Analyzátor.

Synopse:

!PARSE.EXACTLY
what: <...>

nebo kratší verze:

!PARSE.EXACTLY <...>

Example

Vstupní řetězec:_Hello world!

!PARSE.EXACTLY
what: "Hello"

!PARSE.UNTIL¤

Analyzovat sekvenci znaků, dokud není nalezen specifický znak.

Typ: Analyzátor.

Synopse:

!PARSE.UNTIL
what: <...>
stop: <before/after>
eof: <true/false>

nebo kratší verze:

!PARSE.UNTIL <...>
  • what: Určuje jeden (a pouze jeden) znak, který se má hledat v vstupním řetězci.

  • stop: Určuje, zda by měl být zastavovací znak analyzován nebo ne. Možné hodnoty: before nebo after (výchozí).

  • eof: Určuje, zda bychom měli analyzovat až do konce řetězce, pokud symbol what není nalezen. Možné hodnoty: true nebo false (výchozí).

  • escape: Určuje únikový znak.

Info

Pole what musí být jediný znak. Ale některé znaky pro mezeru mohou být také použity, jako například tab. Pro hledání sekvence znaků viz výraz !PARSE.CHARS.LOOKAHEAD.

Example

Vstupní řetězec: 60290:11

!PARSE.UNTIL
what: ":"
Více příkladů Analyzovat do : symbolu a zastavit se před ním:
!PARSE.UNTIL
what: ":"
stop: "before"
Analyzovat do symbolu mezery a zastavit se po něm:
!PARSE.UNTIL ' '
Analyzovat do , symbolu nebo analyzovat až do konce řetězce, pokud není nalezen:
!PARSE.UNTIL
what: ","
eof: true
Analyzovat do tab symbolu:
!PARSE.UNTIL
what: 'tab'
Analyzovat do svislé čáry, uniknout interní svislé čáry:
Vstupní řetězec:CRED_REFR\|success\|fail|
!PARSE.UNTIL
what: '|'
escape: '\'

!PARSE.BETWEEN¤

Analyzovat sekvenci znaků mezi dvěma specifickými znaky.

Typ: Analyzátor.

Synopse:

!PARSE.BETWEEN
what: <...>
start: <...>
stop: <...>
escape: <...>

nebo kratší verze:

!PARSE.BETWEEN <...>
  • what - určuje mezi kterými stejnými znaky bychom měli analyzovat.

  • start, stop - určuje mezi kterými různými znaky bychom měli analyzovat.

  • escape - určuje únikový znak.

Example

Vstupní řetězec:_ [10/May/2023:08:15:54 +0000]

!PARSE.BETWEEN
start: '['
stop: ']'
Více příkladů Analyzovat mezi dvojitými uvozovkami:
!PARSE.BETWEEN
what: '"'
Analyzovat mezi dvojitými uvozovkami, krátká forma:
!PARSE.BETWEEN '"'
Analyzovat mezi dvojitými uvozovkami, uniknout interním dvojitým uvozovkám:
Vstupní řetězec:"one, \"two\", three"
!PARSE.BETWEEN
what: '"'
escape: '\'

!PARSE.ONEOF¤

Analyzovat jeden znak z vybraného souboru znaků.

Typ: Analyzátor.

Synopse:

!PARSE.ONEOF
what: <...>
nebo kratší verze:
!PARSE.ONEOF <...>

Example

Vstupní řetězce:

process finished with status 0
process finished with status 1
process finished with status x
!PARSE.KVLIST
- "process finished with status "
- !PARSE.ONEOF
what: "01x"

!PARSE.NONEOF¤

Analyzovat jeden znak, který není ve vybraném souboru znaků.

Typ: Analyzátor.

Synopse:

!PARSE.NONEOF
what: <...>

nebo kratší verze:

!PARSE.NONEOF <...>

Example

Vstupní řetězec:_ Wow!

!PARSE.NONEOF
what: ",;:[]()"

!PARSE.REGEX¤

Analyzovat sekvenci znaků, která odpovídá regulárnímu výrazu.

Typ: Analyzátor.

Synopse:

!PARSE.REGEX
what: <...>

Example

Vstupní řetězec:_ FTVW23_L-C: Message...

Výstup: FTVW23_L-C

!PARSE.REGEX
what: '[a-zA-Z0-9_\-0]+'

!PARSE.DATETIME¤

Analyzovat datum a čas.

Typ: Analyzátor.

Synopse:

!PARSE.DATETIME
- year: <...>
- month: <...>
- day: <...>
- hour: <...>
- minute: <...>
- second: <...>
- microsecond: <...>
- nanosecond: <...>
- timezone: <...>
  • Pole month a day jsou povinná.
  • Pole year je volitelné. Pokud není uvedeno, bude použita funkce smart year. Podporovány jsou jak 2, tak 4-místná čísla.
  • Pole hour, minute, second, microsecond, nanosecond jsou volitelná. Pokud nejsou uvedena, bude použita výchozí hodnota 0.
  • Uvedení pole mikrosekund jako microseconds? umožňuje analyzovat mikrosekundy nebo ne, v závislosti na jejich přítomnosti ve vstupním řetězci.
  • Pole timezone je volitelné. Pokud není uvedeno, bude použita výchozí hodnota UTC. Přečtěte si více o analýze časových pásem zde.

Běžné formáty datumu a času

Použijte Zkratky pro analýzu formátů datumu a času RFC 3339, RFC 3164 a ISO 8601.

UNIX čas

Pro analýzu datumu a času v UNIX čase použijte !PARSE.DATETIME EPOCH.

Tip

Použijte !PARSE.MONTH pro analýzu měsíce.

Tip

Použijte !PARSE.FRAC pro analýzu mikrosekund a nanosekund. Všimněte si, že tento výraz spotřebovává . a , také. Nezpracovávejte je odděleně.

Example

Vstupní řetězec: 2022-10-13T12:34:56.987654

!PARSE.DATETIME
- year: !PARSE.DIGITS
- '-'
- month: !PARSE.MONTH 'number'
- '-'
- day: !PARSE.DIGITS
- 'T'
- hour: !PARSE.DIGITS
- ':'
- minute: !PARSE.DIGITS
- ':'
- second: !PARSE.DIGITS
- microsecond: !PARSE.FRAC
        base: "micro"
Dvou-místný rok

Analyzovat datum a čas s dvou-místným rokem:

Vstupní řetězec: `22-10-13T12:34: