Detail hlášky #72886
<a> uaaaaaaaaaaa, zase jsem objevila, ze se v dalsi zdejsi aplikaci parsuje xml regularama
<a> omg
<a> dyt xml knihovny musely existovat vicemene od zacatku, ne?
<b> jasne, uz dinosauri pouzivali xml knihovny
<a> no ze jo
<b> proto taky vyhynuli
Informace o hlášce
Diskuze
Příklad: Chceš podřetězec, který se nachází mezi znaky '>' a '<'.
Řešení, tedy regular: "[^>]*>([^>]*).*"
Jak to funguje:
-V kulatých závorkách je to, co chceš získat, tedy podřetězec, co tě zajímá.
-Dvojice .* popisuje libovolně dlouhý řetězec libovolných znaků.
-Dvojice [^>]* popisuje libovolně dlouhý řetězec, v kterém se nevyskytuje znak >.
Aplikováno na: "<p>test</p>"
-[^>]* čte tak dlouho, dokud nenarazí na znak '>', tedy přečte: "<p"
- symbol '>' přečte ">"
- ([^>]*) čte tak dlouho, dokud nenarazí na znak '>' a protože je to v kulatých závorkách, tak si to zapomatuje, tedy přečte a zapomatuje si "test"
-dvojice .* přečte zbytek, konkrétně "</p>"
Tedy za sebou to přečte celý řetězec a zapomatuje si to, co tě zajímá.
Vtip je v tom, že regulární výrazy se dají použít na cokoliv, například pro kontrolu rodného čísla. XML knihovny používají defakto taky regulární výrazy. Knihovny ti ovšem práci velice zjednoduší, nemusíš již dané výrazy vymýšlet. A to je podle <b> problém, člověk zleniví.