Avaleht
uus teema   vasta Tarkvara »  Tarkvara »  search/replace abi (Notepad++ või muu) 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:  
Petz
HV Guru

liitunud: 05.11.2001




sõnum 20.04.2012 15:37:44 search/replace abi (Notepad++ või muu) vasta tsitaadiga

Ei oska ise välja nuputada, kuidas regular expressioni kasutades välja sõeluda backslash'ide vahele jääv suvalise pikkusega tekst. Võib sisaldada ka numbreid või failinimes lubatud sümboleid.

Algne tekstirida:

C:\otsitav suvaline text\failinimi.xxx

ja lõpptulemus:

failinimi.xxx

Kogu teadus siin ja ilmselt pusiks ise ka lõpuks valmis, aga ehk keegi kiirem ja osavam kuuldel... icon_redface.gif
Kommentaarid: 81 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 75
tagasi üles
vaata kasutaja infot saada privaatsõnum
LiivaneLord
Sõpradele "Olavi"

liitunud: 20.06.2006




sõnum 20.04.2012 15:53:10 vasta tsitaadiga

Petz, \\.*\\

Asendavaks sõneks jätad tühja välja.

Või kui tahad eemaldada ka draivi tähise, siis .*\\
Kommentaarid: 20 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 19
tagasi üles
vaata kasutaja infot saada privaatsõnum
Petz
HV Guru

liitunud: 05.11.2001




sõnum 20.04.2012 16:11:11 vasta tsitaadiga

Seda ma kahtlustasin, et niisama lihtne ongi... icon_biggrin.gif

Leidsin vahepeal mingi näite põhjal, et (\\.*)\s(.*\\) ka toimib, aga ei saanud veel aru, miks see s vahel...

Tänud! thumbs_up.gif

EDIT:
tsitaat:
Või kui tahad eemaldada ka draivi tähise, siis .*\\

.*\ toimib samahästi icon_rolleyes.gif

Saan aru, et see otsib stringis viimase sümboli üles. Aga kui tahaks, et ainult esimese (või teise) backslashini selekteeriks, mida siis teha?
Kommentaarid: 81 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 75
tagasi üles
vaata kasutaja infot saada privaatsõnum
Dogbert
HV Guru
Dogbert

liitunud: 03.05.2004




sõnum 20.04.2012 19:11:55 vasta tsitaadiga

\s = [ \t\r\n\v\f] ehk tühik, tab, caret return, newline, vertical tab, form feed - tühi ruum ühesõnaga. See näide paistab olema tühikute eemaldajaks mõeldud vist. Peaks noppima ükshaaval kõik tühikud ka välja, kui asenduseks võtta sulgudesse jääv osa \1\2 või asendab tühiku mõne muu sümboliga, näiteks \1_\2

Notepad++ regexp tugi on kahjuks mittetäielik, loogilised tehted puhta puudu. OR oleks teinekord väga vajalik.

http://en.wikipedia.org/wiki/Regexp
http://regexlib.com/CheatSheet.aspx

backslash on topelt, kuna ta ise on metacharacter (metasümbol) ja tema enda leidmiseks tuleb ta topelt kirjutada.

Ainult esimese backslashini:

^.*\\

teiseni:

^.*\\.*\\

_________________
Tee inimesele lõke ja tal on soe üheks päevaks, pista ta põlema ja tal on soe elu lõpuni. (Terry Pratchett)
e.k spikker: muhk on kumer, lohk on nõgus.


viimati muutis Dogbert 20.04.2012 19:13:25, muudetud 1 kord
Kommentaarid: 33 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 32
tagasi üles
vaata kasutaja infot saada privaatsõnum
LiivaneLord
Sõpradele "Olavi"

liitunud: 20.06.2006




sõnum 20.04.2012 19:13:03 vasta tsitaadiga

Petz, kurakaldkriips (\) tuleb asetada erisümbolite ette, et neid erisümbolitest eristada ja kasutada tavasümbolitena.

Minu jaoks on ka regulaaravaldised üsna keerulised, aga kui tahad otsingut esimeses kurakaldkriipsust enne järgmist kriipsu, siis vajad \\[^\\]*
Kui tahad, et ülejärgmise kurakaldkriipsuni, siis lisad sinna iga kriipsu jaoks \\[^\\]*
Seega \\[^\\]*\\[^\\]*
Kui tahad kolmanda kriipsuni, siis \\[^\\]*\\[^\\]*\\[^\\]* jne.
Kui tahad, et vastena kujuneks ka viimane kurakaldkriips, siis kasuta \\[^\\]*\\

PS! Kui sa kasutad kantsulge ja kirjutad sinna sümboleid, siis otsitakse ainult sinu täpsustatud sümbolit või sümboleid. Aga kui lisad sümbolite ette ^ märgi, siis otsitakse kõiki teisi sümboleid, v.a seda. Antud juhul sa ei soovi, et see läheks kurakaldkriipsudest üle ja selleks seda kasutamegi.

Saad ise lisaks uurida -> http://www.regular-expressions.info/reference.html
Kommentaarid: 20 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 19
tagasi üles
vaata kasutaja infot saada privaatsõnum
Dogbert
HV Guru
Dogbert

liitunud: 03.05.2004




sõnum 20.04.2012 19:22:55 vasta tsitaadiga

Jah, "[^\\]" on õigem kasutada kui ".*", ehk siis esimese kriipsuni oleks ^[^\\]*\\ ja teiseni ^[^\\]*\\[^\\]*\\

___________
See on eeldusel, et nopid neid välja mitte sõna algusest vaid rea algusest lugedes. ^ eraldi on rea algus $ on lõpp

_________________
Tee inimesele lõke ja tal on soe üheks päevaks, pista ta põlema ja tal on soe elu lõpuni. (Terry Pratchett)
e.k spikker: muhk on kumer, lohk on nõgus.
Kommentaarid: 33 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 32
tagasi üles
vaata kasutaja infot saada privaatsõnum
Petz
HV Guru

liitunud: 05.11.2001




sõnum 21.04.2012 15:21:02 vasta tsitaadiga

Ma olen alati arvanud, et HV on õpetlikum kui wikipedia ja ülikool kokku thumbs_up.gif
Kommentaarid: 81 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 75
tagasi üles
vaata kasutaja infot saada privaatsõnum
LiivaneLord
Sõpradele "Olavi"

liitunud: 20.06.2006




sõnum 21.04.2012 17:43:47 vasta tsitaadiga

Petz, mina sain ka alguses tuge siit. Hiljem oskasin juba ise juurde mõelda ja õppida. icon_wink.gif icon_razz.gif icon_smile.gif
Kommentaarid: 20 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 19
tagasi üles
vaata kasutaja infot saada privaatsõnum
Tomorrow
HV Guru
Tomorrow

liitunud: 08.02.2006



Autoriseeritud ID-kaardiga

sõnum 07.05.2012 08:04:17 vasta tsitaadiga

Panen kah mõned N++ otsi ja asenda käsud siia. Ehk on kellelegi abiks:
Remove all non albhabet characters like commas and such - Regex:
[^A-Za-z0-9]
(leave this blank)

Remove all blank lines - Extended:
\r\n
(leave this blank)

Find first file with specific extension in file - Regex:
[^"]([^"']+(\.extension))
Kommentaarid: 92 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 82
tagasi üles
vaata kasutaja infot saada privaatsõnum
näita postitusi alates eelmisest:   
uus teema   vasta Tarkvara »  Tarkvara »  search/replace abi (Notepad++ või muu)
[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.