Kezdőoldal » Számítástechnika » Programozás » Hogy lehet regex-el ezt...

Hogy lehet regex-el ezt megcsinálni?

Figyelt kérdés

Olyan keresést szeretnék megvalósítani, aminél a szavak közötti jelek nem számítanak.

Tehát pl. az ABC DEF -et keresve találat lenne ezek mindegyikére:

ABC, DEF

ABC "DEF"

"ABC" DEF

ABC - DEF


Vagyis a keresésnél csak a betűket, számokat vegye figyelembe az egész string-ben.


júl. 11. 10:31
 1/7 anonim ***** válasza:
51%

Én \W*-ot (nem alfanumerikus karakter 0-szor vagy sokszor) írnék a betűk közé, tehát pl.

A\W*B\W*C\W*D

júl. 11. 12:09
Hasznos számodra ez a válasz?
 2/7 A kérdező kommentje:
#1: Köszi! Közben én is gondolkoztam, és hasonlóra jutottam, hogy sajnos minden betű közé kell ilyesmi.
júl. 11. 13:27
 3/7 anonim ***** válasza:
35%

[a-zA-Z0-9]+


A regex ennél okosabb, ez csak a betűket és a számokat veszi figyelembe, más karaktert nem. Python ->


import re


text = "Hello, World! 1234. This is a test: ABCdef567."


matches = re.findall(r'[a-zA-Z0-9]+', text)


print(matches)


->

['Hello', 'World', '1234', 'This', 'is', 'a', 'test', 'ABCdef567']

júl. 12. 17:00
Hasznos számodra ez a válasz?
 4/7 anonim ***** válasza:
35%
Tessek: [link]
júl. 13. 00:03
Hasznos számodra ez a válasz?
 5/7 anonim ***** válasza:

#4 ez nem azt csinálja amit a kérdező akar, példákat adott, nem azt amit konkrétan keresni akar. "Vagyis a keresésnél csak a betűket, számokat vegye figyelembe az egész string-ben."

Plusz a kereséshez amit írtál a regex ágyúval verébre, kb bármelyik nyelv string contains() metódusa elég lenne ide.

júl. 13. 11:37
Hasznos számodra ez a válasz?
 6/7 anonim ***** válasza:

Csak azt kell tudni, hogy benne van-e vagy ha benne van, akkor milyen formában?

Előbbi esetben simán hoz létre egy olyan stringet amiből kiszűröd a nem kívánt karaktereket.. utána ráengedheted a regexet, bár ha az csak fix stringet keres, akkor elég a sima contains is.

Ha az is kell, hogy az eredeti stringben hol és miként szerepel, akkor hozz létre egy map-et amikor a szűrt stringet csináod. Ez pl egy lista ami a szűrt string hosszával megegyező int lista és az egyes értékek azt tartalmazzák, hogy az új string i. karaktere az eredeti string hanyadik karaakterének felel meg.


Pl:

eredeti string: XY "ABC" DEF ZZ

a szűrt string: XY ABC DEF ZZ

a map: 0 1 2 3 5 7 8 9 10 11 12 13 14

A találat helye a szűrt stringben: 3-9

A map alapján: 3-11

júl. 13. 22:32
Hasznos számodra ez a válasz?
 7/7 anonim ***** válasza:

Talán ez:


\b(?:\W?)A(?:\W*)B(?:\W*)C(?:\W*)D(?:\W*)E(?:\W*)F(?:\W?)

júl. 17. 15:26
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!