Kezdőoldal » Számítástechnika » Programozás » Hogyan szedek ki Javascriptben...

Hogyan szedek ki Javascriptben reguláris kifejezéssel, 2 meghatározott karakter közti részt?

Figyelt kérdés

Egy szövegből szeretném kivenni azokat a részeket, melyek szögletes zárójelben vannak, úgy, hogy a szögletes zárójel karaktereket ne tartalmazza az eredmény.


//pl


let szoveg = "Ez egy [szoveg] melyben [szogletes zarojelben] levo reszek is [vannak]."


Arra rájöttem, hogy az illeszkedési minta végén (?=\]) azt nézi, hogy követi-e a keresett szöveget egy bezár szögletes zárójel, de nem lesz benne az eredménybe, ám ugyanezt az elejével nem tudtam kivitelezni.


A válaszokat előre is köszönöm.



2023. febr. 10. 17:29
 1/8 A kérdező kommentje:

Amiután kiírtam a kérdést, még keresgéltem egy kicsit, és rátaltáltam az eddigi legbővebb leírásra, amit eddig láttam ebben a témában Javascript vonatkozásában, és "követ" mellett itt már szépen taglalja a "megelőz" lehetőséget is, így már ki tudtam szedni az alábbi reguláris kifejezéssel a szögletes zárójelben levő részeket.


szoveg.match(/(?<=\[)[\w\s]+(?=\])/g);


a leírás pedig a [link]

2023. febr. 10. 17:41
 2/8 A kérdező kommentje:

Viszont, ha valaki tud ennél jobb, szebb megoldást, kérem ne tartsa magában :) Hadd tanuljak! :)


Köszönöm!

2023. febr. 10. 18:05
 3/8 A kérdező kommentje:
Vagy, ha ezt másképp szokták csinálni
2023. febr. 10. 18:15
 4/8 Drone007 ***** válasza:

Szerintem ez a pattern egyszerubb, raadasul a te kodod a zarojeleket adja vissza nem a bezart szoveget:

/\[([\w\s]+)\]/g

Ezen az oldalon egyszeruen tesztelheted a patterneket, es sok segitseget is ad, hogy melyik kifejezes mit csinal, mit takar:

[link]

2023. febr. 11. 08:58
Hasznos számodra ez a válasz?
 5/8 A kérdező kommentje:

Kedves #4


Nagyon szépen köszönöm a linket! Hasznos link. Viszont sajnos nincs benne Javascript koncepció. A böngésző konzoljában próbáltam ki a fenti kódot, nevezetesen a szoveg.match(/(?<=\[)[\w\s]+(?=\])/g); kifejezést, és nem a zárójeleket adta vissza, hanem a benne levő szövegeket. Letesztelheted. F12-es billentyű bármelyik modern böngészőben, és már mehet is a teszt.


Szóval nekem konkrétan Javascript String.match függvényében kellett jól működjön. Azt még nem értettem meg, hogy match esetében mit tudok kezdeni a csoportosítással, hiszen a visszatérési értéke mindig egy sima array match esetében. Ha elnevezem a csoportot, akkor sem találok a visszatérési értékekben eredmeny.groups.csoportneve lehetőséget, ahogy azt a dokumentációkban olvasom. Akkor meg minek?! viszont string.replace esetében, a csoportokat lehet hasznosítani $1, $2..., $n behelyettesítésekkel a stringben. És sajnos nem találok komoly és használható erre vonatkozó javascript tananyagot. Vagyis hogy lehet javascriptben is olyan szépen hasznosítani a csoportokat, mint mondjuk php-ban. ott a kerekzárójeles részek külön-külön megjelennek az eredménytömben. javascriptben, egy összefüggésként jelenik meg a matches-ben mint illeszkedési minta. Szóval hogy hasznosítom a csoportokat?


És kedves 4. nem Javasript esetében valószínű, hogy igazad van, hogy az általam felírt kifejezés nem azt adja vissza, ami nekem kell. Viszont javascriptben igen. Mitél van ez a külömbség?

2023. febr. 11. 09:46
 6/8 A kérdező kommentje:

Kedves #4


Linkelem, hogy mi lett az eredménye, az általad küldött reguláris kifejezésnek.


let szoveg = "Ez egy [szoveg] melyben [szogletes zarojelben] levo reszek is [vannak].";

szoveg.match(/\[([\w\s]+)\]/g);


//-> Array(3) [ "[szoveg]", "[szogletes zarojelben]", "[vannak]" ]


Tehát vissz adta a zárójeleket is.

2023. febr. 11. 09:51
 7/8 A kérdező kommentje:

Kedves #4


Most, hogy megnéztem az általad küldött mintát, és próbáltam értelmezni, látom azt a koncepciót, amit alapján gondolkodtál! Tehát készítettél egy illeszkedési mintát, melyben csoportosítottad azt, amire nekem van szükség! És a kimenet, egy array kéne legyen, amiben a kerek zárójelben levő részek vannak csupán. Ez nagyon tetszik és szép. Viszont miért nem így működik a match?! Miért kellett én kiszenvedjem (minimális hozzáértéssel) azt a verziót, ami végül jó eredményt adott?!


Jobban meg kell nézzem a match függvényt. Lenne valami plusz opcionális paramétere, amivel beállíthatom, hogy hogy működjön a reguláris kifejezés benne?!

2023. febr. 11. 09:58
 8/8 anonim ***** válasza:
Nem unod hogy a saját kérdésedre válaszolsz ezerszer? Előbb szedd össze a gondolataidat azután küld el az üzenetedet ne úgy ha eszedbe jut valami rögtön beírod ráadásul összeszedetlenül így egy zavaros valami amit ideböfögsz. Nyilván nem percenként fogok neked ugrani válaszolni ezért értelmesen tedd fel a kérdést hogy mit nem tudsz aztán kapsz értelmes választ
2023. febr. 11. 11:50
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!