Portál AbcLinuxu, 2. května 2025 07:24
[^(q|qr|qq|cat|ag|gs|p)]$.*=[a-zA-Z0-9][^.,:?=][a-zA-Z0-9]*$
^(q|qr|qq|cat|ag|gs|p)
protože to je to co právě nechci..
\b(?!(q|qr|qq|cat|ag|gs|p)(?==))[a-z]+=[a-zA-Z0-9]+$(nemusí to robiť presne to, čo to robiť má, napr. preto, lebo z toho originálneho regexp nie je jasné, čo vlastne môže byť pred znakom =)
nespravny syntax:
[^(q|qr|qq|cat|ag|gs|p)]
Toto ti nebude fungovat nikde bez ohladu na RegExp implementaciu. Je to jednoducho nespravne.
V hranatych zatvorkach s negaciou mozu byt iba znaky alebo ich mnoziny. Ty si tam dal backreference (alebo atom). To co ty zrejme chces je negative lookbehind, ale ten, pokial viem, v JS neexistuje.
\(q\|qr\|qq\|cat\|ag\|gs\|p\)\@<vykricnik.*=1a2b3c
(?<vykricnik(q|qr|qq|cat|ag|gs|p)).*=1a2b3c
Avsak za sucasnych okolnosti ani lookbehind nepomoze, pretoze rovno za nim je .* a to bude matchovat aj na lookbehindoch, ktore zlyhali, pretoze RegExp je greedy.
nespravny syntax:
[^(q|qr|qq|cat|ag|gs|p)]$
Anchor $ oznacuje koniec retazca. Podobne ako anchor ^ oznacuje iba zaciatok retazca. Retazec ma iba jeden zaciatok a iba jeden koniec. Pozor nepliest si ^ s [^].
Cast `=[a-zA-Z0-9][^.,:?=][a-zA-Z0-9]*$` mi nie je uplne jasna. Bud teda chces iba znaky [a-z0-9A-Z], co samo sebou implikuje, ze tam nebudu znaky '.,:?='. Alebo chces naozaj to, co tam je zapisane a to je:
I. Prvy znak moze byt iba [a-z0-9A-Z]
^[a-z]*(?<!^(q|qr|qq|cat|ag|gs|p))=[a-z0-9]*$
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.