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:
!PARSE.DIGIT,!PARSE.DIGITS: Analyzovat jednotlivé nebo více číslic.!PARSE.LETTER,!PARSE.LETTERS: Analyzovat jednotlivá nebo více písmen.!PARSE.SPACE,!PARSE.SPACES: Analyzovat jednotlivé nebo více znaků pro mezeru.!PARSE.CHAR,!PARSE.CHARS: Analyzovat jednotlivé nebo více znaků.
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:
!PARSE.EXACTLY: Analyzovat pouze specifickou sekvenci znaků.!PARSE.UNTIL: Analyzovat do doby, než je nalezen specifický znak.!PARSE.BETWEEN: Analyzovat mezi dvěma znaky.!PARSE.ONEOF: Analyzovat pouze jeden z povolených znaků.!PARSE.NONEOF: Analyzovat každý znak kromě zakázaných.!PARSE.REGEX: Analyzovat znaky odpovídající regulárnímu výrazu.
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.IP: Analyzovat IP adresu.!PARSE.MAC: Analyzovat MAC adresu.
!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: <...>
exactlyurčuje přesný počet číslic k analýze.minamaxurčují minimální a maximální počet číslic k analýze. Nemohou být kombinovány s parametremexactly.- Pokud není uvedeno žádné z polí
min,maxaexactly, 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
!PARSE.DIGITS
exactly: 3
!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
!PARSE.LETTERS
exactly: 3
!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
!PARSE.CHARS
exactly: 3
!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:beforeneboafter(výchozí). -
eof: Určuje, zda bychom měli analyzovat až do konce řetězce, pokud symbolwhatnení nalezen. Možné hodnoty:truenebofalse(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"
!PARSE.UNTIL ' '
, symbolu nebo analyzovat až do konce řetězce, pokud není nalezen:
!PARSE.UNTIL
what: ","
eof: true
tab symbolu:
!PARSE.UNTIL
what: 'tab'
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: '"'
!PARSE.BETWEEN '"'
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: <...>
!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
monthadayjsou povinná. - Pole
yearje 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,nanosecondjsou 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
timezoneje volitelné. Pokud není uvedeno, bude použita výchozí hodnotaUTC. 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: