» »

Python separiranje besed v stavkih

Python separiranje besed v stavkih

Meizu ::

Mater ma me heca.

Se trudim narest sledeče, pa mi ne uspe:

Imam en string stavek npr.:

'"Danes sije sonce" (234) {dfkg} lalala-lala-lalala'

Kako bi skonstruiral kodo, ki bi mi ven pobrala le "Danes sije sonce" (le da v končni obliki brez narekovajev), ter lalala-lala-lalala?

Bolj kot ramišljam, manj mi je jasno. (btw, koda mora delovat za različne stavke, in vedno mora pobrat tisto, kar je v narekovajih, ter tisto, kar se prične po zadnjem tabulatorju v vrstici)

ta-mau ::

Morda pregledaš regularne izraze..

Za izluščit kar je med narekovaji npr.:
 "(.*)" 


Kar pomeni najdi mi znak " in ponavljajoč poljuben niz, ki se zaključi z ".

MrBrdo ::

bolj pravilno bi bilo
"([^"]*)"

ali ce podpira .*? namesto .*
ker mislim da je .* naceloma greedy in se ti lahko zgodi da matcha npr. "lalala"lalala" skupaj.
MrBrdo

morbo ::

Meizu je izjavil:

koda mora delovat za različne stavke, in vedno mora pobrat tisto, kar je v narekovajih, ter tisto, kar se prične po zadnjem tabulatorju v vrstici)

Tole dela pod pogojem da so nevednice vedno prvi znak v nizu in da niz vedno vsebuje tabulator (torej ne le presledek). Ni pa izredno berljivo :)
s = '"Danes sije sonce" (234) {dfkg} 	lalala-lala-lalala'
s = (s[s.find('"')+1:s.find('"',1)], s[s.rfind("\t")+1:])

Spura ::

Ce je string z narekovaji vedno prisoten, pa string za tabulatorjem tudi, potem je regex
"([^"]*+)".*?\t([^\t]*)$

Zgodovina sprememb…

  • spremenil: Spura ()

Meizu ::

Hvala vsem za pomoč. Bom preizkusil tole, ko pridem domov.

MrBrdo ::

Spura in v cem je smisel dati []*+? Ali to sploh deluje... Dva quantifierja (*+) eden za drugim.
MrBrdo

Spura ::

Sej *? sta tudi dva quantifierja, kao. Ubistvu je takole. ?, +, *, {x,y} so quantifieryi in so greedy, ce dodas ? dobis reluctant quantifierye ??, +?, *? in {x,y}? ki matchajo cimkrajsi string, ce pa dodas + dobis pa possessive quantifier ?+, ++, *+, {x,y}+, ki ne backtracka. V tem primeru sem ga uporabil, da bi regex hitreje deloval.

strictom ::

Nekdo pa ni naloge nardil :)
"Violence is the last refuge of the incompetent" - Salvor Hardin

Meizu ::

A to leti name al na kakšenga posameznika v tej temi?


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Python napaka: IndentationError: unindent does not match any outer indentation level

Oddelek: Programiranje
13779 (709) jan_g
»

PHP - stringi

Oddelek: Izdelava spletišč
251779 (1602) pehape
»

[C++] Preverjanje ce je program dos ali win32

Oddelek: Programiranje
211402 (1058) BigWhale
»

[php]: preprost problem in preg_replace()

Oddelek: Izdelava spletišč
61130 (1068) R33D3M33R
»

[C++] Stack corrupted? Memory allocation f****p?

Oddelek: Programiranje
141369 (1136) BigWhale

Več podobnih tem