Új hozzászólás Aktív témák
-
Taci
addikt
válasz
sztanozs
#20799
üzenetére
Mint kiderült, mégsem értem...
Ez a sor nekem elég összetett:
$pattern = '/(&#(?:X[0-9a-f]*|0{0-8}*|{1-9}{0-9}*)(?!;))/i';Részekre szedve:
-&#ezzel kezdődő mintákat keres
- amik így folytatódhatnak:
-X[0-9a-f]*: tehát a következő karakter az X (a végén lévő /i miatt kis- és nagybetű is), utána pedig a 16-os (HEX) számrendszer miatt 0-9 és a-f karakterek szerepelhetnek, a * miatt 0 vagy több számban. Szóval ez a része azt hiszem, rendben (mármint értem), ezzel van lekezelve, ha Hex kódolásban lennének a karakterek.
-0{0-8}*: Ez a rész nem teljesen tiszta. Ha jól értem, ez azt jelenti, hogy a&#után hány darab 0 karakter állhat, és itt az van megadva, hogy 0-tól 8 db-ig akármennyi. Tehát ez alapján a minta lehetne&#,�,�, ...,�? Ezt nem értem, hogy mire való - vagy rosszul értelmezem.
-{1-9}{0-9}*: Ezt a részt egyáltalán nem értem. Kapcsos zárójel elvileg azt jelenti, hogy az előtte álló karaktert hányszor ismételje meg. De a|miatt a&#van előtte. Szóval nem értem.- A végén van még a
(?!;). Ezt sem értem, hogy mit csinálhat.- És a legeljén lévő
?:-ról pedig csak a nevét találtam: Non-Capturing Groups. De a működését nem bírom felfogni. Talán "csak" a művelet sebességéhez van köze?
(?: ), in contrast to ( ), is used to avoid capturing text, generally so as to have fewer back references thrown in with those you do want or to improve speed performance.-
$replacement = '${1};';Itt pedig az $1 a backreference lenne. A kapcsos zárójeleknek itt a Non-Capturing Groups-hoz van köze? Ezt sem igazán értem. Mert ugye itt adod meg, hogy ha megtalálja a mintát, akkor mire cserélje: eredeti + zárja le pontosvesszővel.
Az én felületes "tudásommal" ha magam írtam volna, akkor ezt írtam volna:$replacement = '$1' . ';';Miben különbözik az általad írt?Összességében a cél nyilván az, hogy felismerje, ha Dec vagy Hex kódolású karakterekről van szó (Dec:   Ẁ ♦ - Hex: ~ ˆ ∼ ), és ha nincs pontosvessző a végén, akkor egészítse ki vele.
Csak a részletekben vesztem el, és szeretném érteni, mi-mit-miért csinál. (Bocsánat, ha evidens dolgokra kérdezek rá, próbáltam megérteni a részleteket, utána járni, de ez egy számomra elég bonyolult "képlet".)
Ezt a pár dolgot pár mondatban el tudnád, magyarázni, kérlek?
Új hozzászólás Aktív témák
- PlayStation 5
- Mibe tegyem a megtakarításaimat?
- Tőzsde és gazdaság
- NVIDIA GeForce RTX 5070 / 5070 Ti (GB205 / 203)
- Kritikát kapott a Nintendo konzolgyilkos felhasználói szerződése
- Házak után a VGA: ASRock csúcskártya kijelzővel
- Bluetooth hangszórók
- potyautas: Aktiviti
- GoodSpeed: Munkaügyi helyzet Hajdú-Biharban: észak és dél
- Forza sorozat (Horizon/Motorsport)
- További aktív témák...
- ÚJ!! GARIS! MSI MPG B550 GAMING PLUS
- Samsung Galaxy S25 Edge 256 GB / Bontatlan - 3 év gari
- Macbook Pro M3 Max 14CPU/30GPU 36GB RAM 1TB SSD Magyar bill. - 2027. májusig AppleCare+ garancia
- Gamer PC-Számítógép! Csere-Beszámítás! R5 5500 / 16GB DDR4 / RX 6600 8GB / 512 GB SSD
- Asztali PC , i7 7700 , GTX 1080 , 16GB DDR4 , 256GB SSD , 500GB HDD
- Samsung Galaxy S20 Ultra / 12/128GB / Kártyafüggetlen / 12Hó Garancia
- Dell Precision 3571 4G LTE i7-12700H 32GB 1000GB FHD RTX A1000 4GB 1 év teljeskörű garancia
- Dell Latitude Precision Üzleti gépek, 2-in-1 gépek, 3-11. gen.
- Dell Precision 7550 i7-10850H 32GB 512GB Nvidia RTX3000 6GB 1 év garancia
- BESZÁMÍTÁS! Acer Predator Helios Neo 18 Ai - Ultra 9 275HX 32GB DDR5 1TB SSD RTX 5070Ti 12GB W11
Állásajánlatok
Cég: Laptopszaki Kft.
Város: Budapest
Cég: BroadBit Hungary Kft.
Város: Budakeszi


