Avaleht
uus teema   vasta Tarkvara »  Programmeerimine »  Stringist kindla sõna otsimine märgi kõik teemad loetuks
märgi mitteloetuks
vaata eelmist teemat :: vaata järgmist teemat
Hinnavaatlus :: Foorum :: Uudised :: Ärifoorumid :: HV F1 ennustusvõistlus :: Pangalink :: Telekavad :: HV toote otsing
autor
sõnum Saada viide sõbrale.  :: Teata moderaatorile teata moderaatorile
otsing:  
f0rt
HV vaatleja
f0rt

liitunud: 23.01.2006




sõnum 15.04.2008 13:38:28 Stringist kindla sõna otsimine vasta tsitaadiga

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
vaata kasutaja infot saada privaatsõnum
Ho Ho
HV Guru
Ho Ho

liitunud: 16.02.2002




sõnum 15.04.2008 14:12:19 vasta tsitaadiga

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
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
f0rt
HV vaatleja
f0rt

liitunud: 23.01.2006




sõnum 15.04.2008 16:20:28 vasta tsitaadiga

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
vaata kasutaja infot saada privaatsõnum
troglodyte
Kreisi kasutaja
troglodyte

liitunud: 09.08.2002




sõnum 15.04.2008 19:09:47 vasta tsitaadiga

Ho Ho ütles ju et on olemas str.find() meetod, mis tagastab otsitava sõna positsiooni stringis.
Konkreetsel juhul:
python:
  1. x = 'teivas'
  2. tekst = 'lalala teivas="taavet"'
  3. p = tekst.find(x)
  4. if p != -1
  5.     print tekst[p+2+len(x):-1]



Veidi universaalsem, regulaaravaldisega - tagastab sulgude vahel matchitud alamstringid.
python:
  1. import re
  2. print re.compile(r'%s="([^"]+)"' % (x,)).findall(tekst)
Kommentaarid: 34 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 34
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
näita postitusi alates eelmisest:   
uus teema   vasta Tarkvara »  Programmeerimine »  Stringist kindla sõna otsimine
[vaata eelmist teemat] [vaata järgmist teemat]
 lisa lemmikuks
näita foorumit:  
 ignoreeri teemat 
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.