praegune kellaaeg 20.06.2025 00:26:48
|
Hinnavaatlus
:: Foorum
:: Uudised
:: Ärifoorumid
:: HV F1 ennustusvõistlus
:: Pangalink
:: Telekavad
:: HV toote otsing
|
|
autor |
|
f0rt
HV vaatleja

liitunud: 23.01.2006
|
15.04.2008 13:38:28
Stringist kindla sõna otsimine |
|
|
muutuja = "hapukapsasupp"
nii = muutuja.split("hapu")
nii = nii[1].split("supp")
print nii[0]
Näidiskood on selline hetkel, ta väljastab "kapsa", mida ma tahangi sealt kätte saada.
Aga kas mingit lühemat moodust pole? Midagi nagu:
nii = muutuja.find("kapsa")
print nii
ja siis väljastab otse kapsa
Ah jaa, tegemist pythoniga.
|
|
tagasi üles |
|
 |
Ho Ho
HV Guru

liitunud: 16.02.2002
|
15.04.2008 14:12:19
|
|
|
http://docs.python.org/lib/string-methods.html
string.find(substring) peaks ütlema kas leidub antud substring või ei. Tagastab väärtuseks esimese substringi märgi indeksi või -1 kui ei leitud.
_________________ Teach a man to reason and he'll think for a lifetime
Common sense - so rare that it's a damn superpower
Vaadates paljude inimeste sõnavõtte siin ja mujal jääb üle ainult klassikuid tsiteerida - "I weep for humanity" |
|
Kommentaarid: 106 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
1 :: |
86 |
|
tagasi üles |
|
 |
f0rt
HV vaatleja

liitunud: 23.01.2006
|
15.04.2008 16:20:28
|
|
|
import re
sub = re.compile('teivas')
m = sub.search('halleluujama ei tea midateivasnyyd"')
otsitav = m.group()
print otsitav
Nii see leiab nüüd selle "teivas" sealt üles, aga ütleme, et mul on hoopis selle kõrvalt teatud substringi saada, sellesmõttes:
sub = re.compile('teivas')
m = sub.search('lalala teivas="taavet"')
otsitav = m.group()
Et väljastaks "taavet", ta peab jätma vahele ühe võrdusmärgi, jutumärgi ja peatuma uue jutumärgi ees.
mingi selline variant on muidugi 'lalala teivas="taavet"'[15:21] , aga need numbrid peab ta ise teada saama, sest sõna "taavet" võib olla ka pikem sõna või lühem.
Äkki sai keegi aru :p
|
|
tagasi üles |
|
 |
troglodyte
Kreisi kasutaja

liitunud: 09.08.2002
|
15.04.2008 19:09:47
|
|
|
Ho Ho ütles ju et on olemas str.find() meetod, mis tagastab otsitava sõna positsiooni stringis.
Konkreetsel juhul:
python:
|
x = 'teivas' tekst = 'lalala teivas="taavet"' p = tekst.find(x) if p != -1 print tekst[p+2+len(x):-1]
|
Veidi universaalsem, regulaaravaldisega - tagastab sulgude vahel matchitud alamstringid.
python:
|
import re print re.compile(r'%s="([^"]+)"' % (x,)).findall(tekst)
|
|
|
Kommentaarid: 34 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
34 |
|
tagasi üles |
|
 |
|
lisa lemmikuks |
|
|
sa ei või postitada uusi teemasid siia foorumisse sa ei või vastata selle foorumi teemadele sa ei või muuta oma postitusi selles foorumis sa ei või kustutada oma postitusi selles foorumis sa ei või vastata küsitlustele selles foorumis sa ei saa lisada manuseid selles foorumis sa võid manuseid alla laadida selles foorumis
|
|
Hinnavaatlus ei vastuta foorumis tehtud postituste eest.
|