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: <...>
exactly
určuje přesný počet číslic k analýze.min
amax
urč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
,max
aexactly
, 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:before
neboafter
(výchozí). -
eof
: Určuje, zda bychom měli analyzovat až do konce řetězce, pokud symbolwhat
není nalezen. Možné hodnoty:true
nebofalse
(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
month
aday
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í 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: