Difference between revisions of "Documentation/SL/How Tos/Regularni izrazi in Calc"

From Apache OpenOffice Wiki
Jump to: navigation, search
(Introduction)
 
(24 intermediate revisions by the same user not shown)
Line 1: Line 1:
[[Category:Calc]]
+
[[Category:Calc po slovensko]]
[[Category:How to]]
+
[[Category:KakOOojčki]]
 +
[[Category:Documentation/SL]]
 
[[fr:Documentation/FR/Expressions_Regulieres_dans_Calc]]
 
[[fr:Documentation/FR/Expressions_Regulieres_dans_Calc]]
 
+
{{DISPLAYTITLE:Regularni izrazi in Calc}}
 
== Uvod ==
 
== Uvod ==
In simple terms regular expressions are a clever way to find text.
+
Enostavno rečeno so regularni izrazi pameten način iskanja besedila.
  
  
A typical use for regular expressions is in finding text; for instance to locate all cells containing '''man''' or '''woman''' in your spreadsheet, you could search using a single regular expression.
+
Tipično uporabljamo regularne izraze za iskanje besedila; če želite npr. poiskati vse celice, ki vsebujejo besedo '''gospod''' ali '''gospa''' v svoji preglednici, bi lahko iskali z enim samim regularnim izrazom.
  
== Regular expressions in Calc and Writer ==
+
== Regularni izrazi v modulih Calc in Writer ==
  
Regular expressions are available in Calc as follows:
+
Regularni izrazi v modulu Calc so na voljo na več mestih:
  
*Edit - Find & Replace dialog
+
*Uredi - pogovorno okno Najdi in zamenjaj
  
*Data - Filter - Standard filter & Advanced filter
+
*Podatki - Filtriraj - Standardni filter oz. Napredni filter
  
*Certain functions, such as SUMIF, LOOKUP
+
*Pri določenih funkcijah, kot sta SUMIF in LOOKUP
  
The best way to learn about regular expressions in Calc is to start by understanding how to use them in Find & Replace. This is covered by the '<b>[[Documentation/How_Tos/Regular Expressions in Writer|HowTo for Regular Expressions in Writer]]</b>', which you should read.
+
Najboljši način učenja regularnih izrazov v programu Calc je proučevanje in uporabljanje z Najdi in zamenjaj. To je podrobneje popisano v kakOOojčku '<b>[[Documentation/SL/How_Tos/Regularni izrazi in Writer|Regularni izrazi in Writer]]</b>', ki bi ga morali prebrati.
  
  
In Calc, regular expressions are applied separately to each cell. (You'll see that regular expressions are applied separately to each paragraph in Writer.) So a search for '<b>r.d</b>' will match '<b>red</b>' in cell A1 but will not match '<b>r</b>' in cell A2 with '<b>d</b>' (or '<b>ed</b>') in cell A3. (The regular expression '<b>r.d</b>' means 'try to match '<b>r</b>' followed by another character followed by '<b>d</b>' ').
+
V programu Calc se regularni izrazi uveljavijo ločeno na vsako celico. (Videli boste, da se v programu Writer regularni izrazi izvajajo ločeno na vsakem odstavku.) Torej iskanje '<b>r.s</b>' najde '<b>res</b>' v celici A1, ne pa tudi '<b>r</b>' v celici A2 z '<b>s</b>' (ali '<b>es</b>') v celici A3. (Regularni izraz '<b>r.s</b>' pomeni 'poskusi najti '<b>r</b>', ki mu sledi nek drug znak, ki mu sled '<b>s</b>' ').
  
== Regular expressions in Calc functions ==
+
== Regularni izrazi v funkcijah modula Calc ==
  
There are a number of functions in Calc which allow the use of regular expressions:<br>
+
V modulu Calc je vrsta funkcij, ki podpirajo uporabo regularnih izrazov:<br>
 
'<b>[[Documentation/How_Tos/Calc: SUMIF function|SUMIF]]</b>',
 
'<b>[[Documentation/How_Tos/Calc: SUMIF function|SUMIF]]</b>',
 
'<b>[[Documentation/How_Tos/Calc: COUNTIF function|COUNTIF]]</b>',<br>
 
'<b>[[Documentation/How_Tos/Calc: COUNTIF function|COUNTIF]]</b>',<br>
Line 48: Line 49:
  
  
Whether or not regular expressions are used is selected on the Tools - Options - OpenOffice.org Calc - Calculate dialog:
+
Ali naj bodo regularni izrazi dovoljeni, izberete v pogovornem oknu Orodja - Možnosti - OpenOffice.org Calc - Izračuni:
  
  
[[Image:Regex_howto_2.png|choosing to use regular expressions in Calc functions]]
+
[[Image:Regex_KakOOojček_2.png|izbor uporabe regularnih izrazov v funkcijah Calc]]
  
  
For example ''''=COUNTIF(A1:A6;"r.d")'''' with "Enable regular expressions in formulas" selected will count cells in A1:A6 which contain ''''red'''' and ''''ROD''''.
+
Primer: ''''=COUNTIF(A1:A6;"r.s")'''' z izbrano možnostjo "V formulah omogoči regularne izraze", bo preštel celice v obsegu A1:A6, ki vsebujejo ''''res'''' in ''''RIS''''.
  
  
Additionally if "Search criteria = and <> must apply to whole cells" is ''not'' selected then ''''Fred'''', ''''bride'''', and ''''Ridge'''' will also be counted. If that setting ''is'' selected, then it can be overcome by wrapping the expression thus: ''''=COUNTIF(A1:A6;".*r.d.*")''''.
+
Če poleg tega možnost "Iskalna pogoja = in <> morata biti uporabljena za cele celice" ''ni'' potrjena, bodo pri štetju šteli tudi ''''oris'''', ''''tresk'''' in ''''Rosa''''. Če je to polje ''potrjeno'', ga lahko overcome s preoblikovanjem izraza na naslednji način: ''''=COUNTIF(A1:A6;".*r.s.*")''''.
  
  
[[Image:Regex_howto_4.png|regular expression in COUNTIF function]]
+
[[Image:Regex_KakOOojček_4.png|regularni izraz v funkciji COUNTIF]]
  
  
Regular expression searches ''within functions'' are <u>always case insensitive</u>, irrespective of the setting of the "Case sensitive" check box on the dialog above - so ''''red'''' and ''''ROD'''' will always be matched in the above example. This case-insensitivity also applies to the regular expression structures ([:lower:]) and ([:upper:]), which match characters irrespective of case. See [http://qa.openoffice.org/issues/show_bug.cgi?id=71000 issue 7100] for some background.
+
Iskanje z regularnimi izrazi ''znotraj funkcij'' je <u>vedno neobčutljivo na velikost črk</u>, ne glede na nastavitev potrditvenega polja "Razlikuj velike in male črke" v zgornjem pogovornem oknu - zato bosta ''''res'''' in ''''RIS'''' vedno zadetka v zgornjem primeru. Ta neobčutljivost na velikost črk velja tudi za strukturi regularnih izrazov ([:lower:]) in ([:upper:]), ki se ujemata z znaki ne glede na njihovo velikost. Oglejte si [http://qa.openoffice.org/issues/show_bug.cgi?id=71000 zadevo 7100] za širšo predstavo.
  
Regular expressions will not work in simple comparisons. For example:
+
Regularni izrazi ne delujejo za enostavne primerjave. Primer:
' <b>A1="r.d"</b> ' will always return '''FALSE''' if A1 contains '<b>red</b>', even if regular expressions are enabled - it will only return '''TRUE''' if A1 contains '<b>r.d</b>' ('<b>r</b>' then a <b>dot</b> then '<b>d</b>'). If you wish to test using regular expressions, try the '<b>COUNTIF</b>' function - '<b>COUNTIF(A1; "r.d")</b>' will return '<b>1</b>' or '<b>0</b>', interpreted as '''TRUE''' or '''FALSE''' in formulae like '<b>=IF(COUNTIF(A1; "r.d");"hooray"; "boo")</b>'
+
' <b>A1="r.s"</b> ' vedno vrne '''FALSE''', če A1 vsebuje '<b>res</b>', čeprav so regularni izrazi omogočeni - '''TRUE''' vrne le, če A1 vsebuje '<b>r.s</b>' ('<b>r</b>', nato <b>pika</b>, nato '<b>s</b>'). Če želite preizkusiti rabo regularnih izrazov, poskusite funkcijo '<b>COUNTIF</b>' - '<b>COUNTIF(A1; "r.s")</b>' vrne '<b>1</b>' ali '<b>0</b>', interpretirani kot '''TRUE''' ali '''FALSE''' v formulah kot je '<b>=IF(COUNTIF(A1; "r.s");"juhuhu"; "buuuu")</b>'
  
Activating the "Enable regular expressions in formulas" setting means all the above functions will require any regular expression special characters (such as parentheses) used in strings within formulas, to be "escaped" using a preceding backslash, despite not being part of a regular expression. These backslashes will need removing if the setting is later deactivated.
+
Če vklopite nastavitev "V formulah omogoči regularne izraze", bodo v vseh zgornjih funkcijah morali posebne znake regularnih izrazov (kot je oklepaj), ki jih uporabljate v nizih v formulah, "opremiti" s predstoječo levo poševnico, Čeprav niso del regularnega izraza. Leve poševnice je potrebno odstraniti, če kasneje to nastavitev izključite.
  
== Regular expressions in Calc Find & Replace ==
+
== Regularni izrazi pri Najdi in zamenjaj modula Calc ==
  
Find & Replace in Calc is very similar to Find & Replace in Writer, as described in the '<b>[[Documentation/How_Tos/Regular Expressions in Writer|HowTo for Regular Expressions in Writer]]</b>'. The following points are interesting to Calc users:
+
Najdi in zamenjaj v modulu Calc je zelo podoben Najdi in zamenjaj v modulu Writer, kot je opisano v kakOOojčku '<b>[[Documentation/SL/How_Tos/Regularni izrazi in Writer|Regularni izrazi in Writer]]</b>'. Za uporabnike programa Calc so zanimivi naslednji poudarki:
  
  
* When a match is found, the whole cell is shown highlighted, but only the text found will be replaced. For example, searching for '<b>brown</b>' will highlight a cell containing '<b>redbrown clay</b>', and replacing with nothing will leave the cell containing '<b>red clay</b>'.
+
* Ko iskanje najde zadetek, je cela celica prikazana poudarjeno, zamenjano pa bo le najdeno besedilo. Primer: iskanje '<b>rjavo</b>' poudari celico, ki vsebuje '<b>temnorjavo kapo</b>', z zamenjavo z ničemer ostane v celici '<b>temno kapo</b>'.
  
  
* If Find is used twice in a row, the second time with "Current selection only" activated, then the second search will evaluate the ''whole'' of each selected cell, ''not'' just the strings found which caused the cells to be selected in the first search. For example, searching for '<b>joh?n</b>', then activating "Current selection only" and searching for '<b>sm.th</b>', will find cells containing '''Jon Smith''' and '''Smythers, Johnathon'''.
+
* Če Najdi uporabite dvakrat v vrstici, drugič z aktivirano možnostjo "Samo trenutni izbor", bo drugo iskanje ovrednotilo ''celoto'' vsake izbrane celice, ''ne'' le najdene nize, ki so povzročili, da so ob prvem iskanju celice izbrane. Primer: iskanje '<b>jani?</b>', nato aktiviranje "Samo trenutni izbor" in iskanje '<b>kr.lj</b>' poišče celice, ki vsebujejo '''Jan Kralj''' in '''Kruljič, Jani'''.
  
  
* If a cell contains a hard line break (entered by Cntrl-Enter), this may be found by '<b>\n</b>'. For example if a cell contains '<b>red hard_line_break clay</b>' then searching for '<b>d\nc</b>' and replacing with nothing leaves the cell containing '<b>relay</b>'.
+
* Če celica vsebuje trdi prelom vrstice (vnesete ga s Ctrl+Enter), ga lahko poiščete z '<b>\n</b>'. Primer: če celica vsebuje '<b>res trdi_prelom_vrstice pika</b>', z iskanjem '<b>s\npi</b>' in zamenjavo z ničemer v celici dobite '<b>reka</b>'.
  
  
* The hard line break acts to mark "end of text" as understood by the regular expression special character '<b>$</b>' (in addition of course to the end of text in the cell). For example if a cell contains '<b>red hard_line_break clay</b>' then a search for '<b>d$</b>' replacing with '<b>al</b>' leaves the cell with '<b>real hard_line_break clay</b>'. Note that with this syntax the hard line break is not replaced - it simply marks the end of text.
+
* Trdi prelomi vrstice delujejo kot oznake za "konec besedila", kot ga prepozna posebni znak regularnih izrazov '<b>$</b>' (poleg seveda dejanskega konca besedila v celici). Primer: če celica vsebuje '<b>res trdi_prelom_vrstice pika</b>', potem iskanje '<b>s$</b>' z zamenjavo z '<b>ka</b>' v celici dobimo '<b>reka trdi_prelom_vrstice pika</b>'. Kot vidite, s tovrstno skladnjo trdega preloma vrstice ne morete zamenjati - ta preprosto označuje konec besedila.
  
  
* Using '<b>\n</b>' in the 'Replace with' box will replace with the literal characters '<b>\n</b>', not a hard line break.
+
* Če uporabite '<b>\n</b>' v polju 'Zamenjaj z', boste najdeno zamenjali z dejanskima znakoma '<b>\n</b>', ne s prelomom vrstice.
  
  
* The Find & Replace dialog has an option to search '<b>Formulas</b>', '<b>Values</b>', or '<b>Notes</b>'. This applies to any search, not just one using regular expressions. Searching with the '<b>Formulas</b>' option would find '<b>SUM</b>' in a cell containing the formula '<b>=SUM(A1:A6)</b>'. If a cell contains text instead of a function, the text will still be found - so that the simple text '<b>SUMMARY</b>' in a cell would also give a match to '<b>SUM</b>' using the '<b>Formulas</b>' option.
+
* Pogovorno okno Najdi in zamenjaj ponuja možnost, da lahko preiščete '<b>Formule</b>', '<b>Vrednosti</b>' ali '<b>Opombe</b>'. To velja za poljubno iskanje, ne le za takšno z regularnimi izrazi. Iskanje z izbiro '<b>Formule</b>' najde '<b>SUM</b>' v celici, ki vsebuje formulo '<b>=SUM(A1:A6)</b>'. Če celica vsebuje besedilo namesto funkcije, bo besedilo še vedno lahko zadetek iskanja - enostavno besedilo '<b>SUMATRA</b>' v celici bi pomenilo zadetek pri iskanju '<b>SUM</b>' z izbiro '<b>Formule</b>'.
  
  
* Searching for the regular expression '<b>^$</b>' will not find empty cells. This is intentional - the rationale being to avoid performance issues when selecting a huge number of cells. Note that empty cells will not be found even if you are only searching a selection.
+
* Iskanje z regularnim izrazom '<b>^$</b>' ne najde praznih celic. To je namenoma - da bi se izognili težavam izvajanja pri izboru velikega števila celic. Upoštevajte, da prazne celice ne bodo najdene, tudi če preiskujete le v izboru.
  
  
* Find '<b>.+</b>' (or similar) and Replace with '<b>&</b>' effectively re-enters the contents of cells. This can be used to 'strip' formatting automatically applied by Calc (often needed to 'clean' data imported from the clipboard or badly formatted files), for example, to convert text strings consisting of digits, into actual numbers (the cells must first be correctly formatted 'number'). The leading apostrophes, telling Calc to treat the numbers as text, are removed.
+
* Če v polje Išči vnesete '<b>.+</b>' (ali podobno), v polje Zamenjaj z pa '<b>&</b>', dejansko ponovno vnesete vsebino celic. Na ta način lahko 'očistite' oblikovanje, ki ga je samodejno uveljavil program Calc (pogosto potrebno za 'čiščenje' podatkov, uvoženih iz odložišča ali slabo oblikovanih datotek), npr. za pretvorbo besedilnih nizov, ki jih sestavljajo števke, v dejanska števila (celice je najprej potrebno oblikovati kot 'število'). Vodilni opuščaji, ki modulu Calc narekujejo obravnavo številk kot besedila, so odstranjeni.

Latest revision as of 17:25, 20 July 2008


Uvod

Enostavno rečeno so regularni izrazi pameten način iskanja besedila.


Tipično uporabljamo regularne izraze za iskanje besedila; če želite npr. poiskati vse celice, ki vsebujejo besedo gospod ali gospa v svoji preglednici, bi lahko iskali z enim samim regularnim izrazom.

Regularni izrazi v modulih Calc in Writer

Regularni izrazi v modulu Calc so na voljo na več mestih:

  • Uredi - pogovorno okno Najdi in zamenjaj
  • Podatki - Filtriraj - Standardni filter oz. Napredni filter
  • Pri določenih funkcijah, kot sta SUMIF in LOOKUP

Najboljši način učenja regularnih izrazov v programu Calc je proučevanje in uporabljanje z Najdi in zamenjaj. To je podrobneje popisano v kakOOojčku 'Regularni izrazi in Writer', ki bi ga morali prebrati.


V programu Calc se regularni izrazi uveljavijo ločeno na vsako celico. (Videli boste, da se v programu Writer regularni izrazi izvajajo ločeno na vsakem odstavku.) Torej iskanje 'r.s' najde 'res' v celici A1, ne pa tudi 'r' v celici A2 z 's' (ali 'es') v celici A3. (Regularni izraz 'r.s' pomeni 'poskusi najti 'r', ki mu sledi nek drug znak, ki mu sled 's' ').

Regularni izrazi v funkcijah modula Calc

V modulu Calc je vrsta funkcij, ki podpirajo uporabo regularnih izrazov:
'SUMIF', 'COUNTIF',
'MATCH', 'SEARCH', 'LOOKUP', 'HLOOKUP', 'VLOOKUP',
'DCOUNT', 'DCOUNTA', 'DSUM', 'DPRODUCT',
'DMAX', 'DMIN', 'DAVERAGE', 'DSTDEV', 'DSTDEVP', 'DVAR', 'DVARP',
'DGET'


Ali naj bodo regularni izrazi dovoljeni, izberete v pogovornem oknu Orodja - Možnosti - OpenOffice.org Calc - Izračuni:


izbor uporabe regularnih izrazov v funkcijah Calc


Primer: '=COUNTIF(A1:A6;"r.s")' z izbrano možnostjo "V formulah omogoči regularne izraze", bo preštel celice v obsegu A1:A6, ki vsebujejo 'res' in 'RIS'.


Če poleg tega možnost "Iskalna pogoja = in <> morata biti uporabljena za cele celice" ni potrjena, bodo pri štetju šteli tudi 'oris', 'tresk' in 'Rosa'. Če je to polje potrjeno, ga lahko overcome s preoblikovanjem izraza na naslednji način: '=COUNTIF(A1:A6;".*r.s.*")'.


regularni izraz v funkciji COUNTIF


Iskanje z regularnimi izrazi znotraj funkcij je vedno neobčutljivo na velikost črk, ne glede na nastavitev potrditvenega polja "Razlikuj velike in male črke" v zgornjem pogovornem oknu - zato bosta 'res' in 'RIS' vedno zadetka v zgornjem primeru. Ta neobčutljivost na velikost črk velja tudi za strukturi regularnih izrazov ([:lower:]) in ([:upper:]), ki se ujemata z znaki ne glede na njihovo velikost. Oglejte si zadevo 7100 za širšo predstavo.

Regularni izrazi ne delujejo za enostavne primerjave. Primer: ' A1="r.s" ' vedno vrne FALSE, če A1 vsebuje 'res', čeprav so regularni izrazi omogočeni - TRUE vrne le, če A1 vsebuje 'r.s' ('r', nato pika, nato 's'). Če želite preizkusiti rabo regularnih izrazov, poskusite funkcijo 'COUNTIF' - 'COUNTIF(A1; "r.s")' vrne '1' ali '0', interpretirani kot TRUE ali FALSE v formulah kot je '=IF(COUNTIF(A1; "r.s");"juhuhu"; "buuuu")'

Če vklopite nastavitev "V formulah omogoči regularne izraze", bodo v vseh zgornjih funkcijah morali posebne znake regularnih izrazov (kot je oklepaj), ki jih uporabljate v nizih v formulah, "opremiti" s predstoječo levo poševnico, Čeprav niso del regularnega izraza. Leve poševnice je potrebno odstraniti, če kasneje to nastavitev izključite.

Regularni izrazi pri Najdi in zamenjaj modula Calc

Najdi in zamenjaj v modulu Calc je zelo podoben Najdi in zamenjaj v modulu Writer, kot je opisano v kakOOojčku 'Regularni izrazi in Writer'. Za uporabnike programa Calc so zanimivi naslednji poudarki:


  • Ko iskanje najde zadetek, je cela celica prikazana poudarjeno, zamenjano pa bo le najdeno besedilo. Primer: iskanje 'rjavo' poudari celico, ki vsebuje 'temnorjavo kapo', z zamenjavo z ničemer ostane v celici 'temno kapo'.


  • Če Najdi uporabite dvakrat v vrstici, drugič z aktivirano možnostjo "Samo trenutni izbor", bo drugo iskanje ovrednotilo celoto vsake izbrane celice, ne le najdene nize, ki so povzročili, da so ob prvem iskanju celice izbrane. Primer: iskanje 'jani?', nato aktiviranje "Samo trenutni izbor" in iskanje 'kr.lj' poišče celice, ki vsebujejo Jan Kralj in Kruljič, Jani.


  • Če celica vsebuje trdi prelom vrstice (vnesete ga s Ctrl+Enter), ga lahko poiščete z '\n'. Primer: če celica vsebuje 'res trdi_prelom_vrstice pika', z iskanjem 's\npi' in zamenjavo z ničemer v celici dobite 'reka'.


  • Trdi prelomi vrstice delujejo kot oznake za "konec besedila", kot ga prepozna posebni znak regularnih izrazov '$' (poleg seveda dejanskega konca besedila v celici). Primer: če celica vsebuje 'res trdi_prelom_vrstice pika', potem iskanje 's$' z zamenjavo z 'ka' v celici dobimo 'reka trdi_prelom_vrstice pika'. Kot vidite, s tovrstno skladnjo trdega preloma vrstice ne morete zamenjati - ta preprosto označuje konec besedila.


  • Če uporabite '\n' v polju 'Zamenjaj z', boste najdeno zamenjali z dejanskima znakoma '\n', ne s prelomom vrstice.


  • Pogovorno okno Najdi in zamenjaj ponuja možnost, da lahko preiščete 'Formule', 'Vrednosti' ali 'Opombe'. To velja za poljubno iskanje, ne le za takšno z regularnimi izrazi. Iskanje z izbiro 'Formule' najde 'SUM' v celici, ki vsebuje formulo '=SUM(A1:A6)'. Če celica vsebuje besedilo namesto funkcije, bo besedilo še vedno lahko zadetek iskanja - enostavno besedilo 'SUMATRA' v celici bi pomenilo zadetek pri iskanju 'SUM' z izbiro 'Formule'.


  • Iskanje z regularnim izrazom '^$' ne najde praznih celic. To je namenoma - da bi se izognili težavam izvajanja pri izboru velikega števila celic. Upoštevajte, da prazne celice ne bodo najdene, tudi če preiskujete le v izboru.


  • Če v polje Išči vnesete '.+' (ali podobno), v polje Zamenjaj z pa '&', dejansko ponovno vnesete vsebino celic. Na ta način lahko 'očistite' oblikovanje, ki ga je samodejno uveljavil program Calc (pogosto potrebno za 'čiščenje' podatkov, uvoženih iz odložišča ali slabo oblikovanih datotek), npr. za pretvorbo besedilnih nizov, ki jih sestavljajo števke, v dejanska števila (celice je najprej potrebno oblikovati kot 'število'). Vodilni opuščaji, ki modulu Calc narekujejo obravnavo številk kot besedila, so odstranjeni.
Personal tools
In other languages