Notepad++ şi expresii regulare


Zilele acestea Notepad++ m-a salvat de ore de muncă insipidă. Nu că aş fi făcut-o (mai rapid programam ceva în PHP). Dar să mă explic: am avut un index de termeni, fiecare cu trimitere nu spre pagina unde apare, ci spre numărul articolului care îl tratează. Evident, trebuia să transpun online acest index şi ce folos ca omul să vadă Raţiune, 3 şi 3 să nu fie clickabil acel 3 să îl ducă exact unde ar trebui?! O cale – idioată – este să parcurgi manual fişierul făcând linkuri din respectivele numere. O altă cale e să faci totul rapid, folosind expresii regulare.

imagine

Ştiţi cât mi-a luat în Notepad++ să rezolv? Câteva minute să mă documentez şi câteva secunde pentru execuţia înlocuirii. După cum observaţi în captura de mai sus, în primul rând în fereastra de căutare am mutat pe Expresie regulată (să mă iertaţi, nu ştiu ce e mai fericit – expresii regulare sau regulate). Apoi am căutat (\d+), care se potriveşte nu doar la o cifră (ar fi doar \d) ci la mai multe înlănţuite, dat fiind că am pus semnul plus. Astfel expresia nimereşte şi peste 3 şi peste 479 şi peste orice număr de fapt. Cu ce am înlocuit? Păi linkul (fictiv în captură), în care m-am referit la numărul căutat cu (\1). Păi nu v-am spus că e simplu? Observaţi în captură ce mi-a ieşit rapid cu înlocuirea de mai sus.

imagine

Şi au fost şi alte cazuri în care înlocuirile cu expresii regulare au fost salvatoare de timp. Am fost mega-entuziasmat să văd cum sarcini repetitive, plictisitoare, se pot rezolva cu Notepad++ şi expresii regulare. Îmi permit să copiez o listă utilă găsită aici. Nu mai traduc explicaţiile…

  • [ ]
    The square brackets can be used to match ONE of multiple characters. For instance, [abc] matches any of the characters a, b or c. Hence, b[eo]n will match words like ben and bon, but not been or beon. Ranges can also be used, [a-z] is any lower case character and so on.
  • ^
    The caret can be used inside the square brackets to exclude characters from the match. For instance, hell[^o] means the string ‘hell’ will be ignored if followed by the letter ‘o’. Another example is [^A-Za-z] which will exclude all alphabetic characters.
    However, if not placed inside a set, ^ can be used to matches the start of a line.
  • $
    This matches the end of a line.
  • .
    The period or dot matches any character.
  • \d
    Matches any single digit.
  • \w
    Matches any single alphanumeric characters or underscore.
  • \s
    Matches whitespaces including tabs and line breaks.
  • *
    The asterisk or star sign matches 0 or more times. For example, Ba*m matches Bm , Bam , Baam etc.
  • +
    The plus sign matches 1 or more times. For example, lo+l matches lol , lool , loool etc.
  • \<
    Matches the start of a word. For example, \< directly followed by ‘sh’ matches ‘she’ but does not matches ‘wish’.
  • \>
    Matches the end of a word. For example, sh\> matches ‘wish’ and does not matches ‘she’.
  • ( )
    The round brackets can be used in the Find & Replace function to tag a match. tagged matches can then be used in replace with \1, \2 etc.

Apreciază articolul:

1 stea2 stea3 stea4 stea5 stea (1 evaluări, media: 5,00 din 5)
Loading...Loading...

0 comentarii


Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile necesare sunt marcate *