calibre - en to ta translation catalogue (55 entries)

en: All about using regular expressions in calibre
ta: காலிபரில் வழக்கமான வெளிப்பாடுகளைப் பயன்படுத்துவது பற்றி

en: Regular expressions are features used in many places in calibre to perform sophisticated manipulation of e-book content and metadata. This tutorial is a gentle introduction to getting you started with using regular expressions in calibre.
ta: வழக்கமான வெளிப்பாடுகள் மின்-புத்தக உள்ளடக்கம் மற்றும் மெட்டாடேட்டாவின் அதிநவீன கையாளுதலைச் செய்ய பல இடங்களில் காலிபரில் பயன்படுத்தப்படும் நற்பொருத்தங்கள். இந்த பயிற்சி என்பது வழக்கமான வெளிப்பாடுகளைப் பயன்படுத்துவதைத் தொடங்குவதற்கான ஒரு மென்மையான அறிமுகமாகும்.

en: Contents
ta: உள்ளடக்கங்கள்

en: First, a word of warning and a word of courage
ta: முதலில், எச்சரிக்கை வார்த்தையும் தைரியமான வார்த்தையும்

en: This is, inevitably, going to be somewhat technical- after all, regular expressions are a technical tool for doing technical stuff. I'm going to have to use some jargon and concepts that may seem complicated or convoluted. I'm going to try to explain those concepts as clearly as I can, but really can't do without using them at all. That being said, don't be discouraged by any jargon, as I've tried to explain everything new. And while regular expressions themselves may seem like an arcane, black magic (or, to be more prosaic, a random string of mumbo-jumbo letters and signs), I promise that they are not all that complicated. Even those who understand regular expressions really well have trouble reading the more complex ones, but writing them isn't as difficult- you construct the expression step by step. So, take a step and follow me into the rabbit hole.
ta: இது தவிர்க்க முடியாமல், ஓரளவு தொழில்நுட்பமாக இருக்கப் போகிறது- எல்லாவற்றிற்கும் மேலாக, வழக்கமான வெளிப்பாடுகள் தொழில்நுட்ப விசயங்களைச் செய்வதற்கான தொழில்நுட்ப கருவியாகும். சிக்கலான அல்லது சுருண்டதாகத் தோன்றக்கூடிய சில வாசகங்களையும் கருத்துகளையும் நான் பயன்படுத்த வேண்டியிருக்கும். அந்த கருத்துக்களை என்னால் முடிந்தவரை தெளிவாக விளக்க முயற்சிக்கப் போகிறேன், ஆனால் அவற்றைப் பயன்படுத்தாமல் செய்ய முடியாது. சொல்லப்பட்டால், எந்தவொரு வாசகங்களாலும் சோர்வடைய வேண்டாம், ஏனெனில் நான் எல்லாவற்றையும் புதிதாக விளக்க முயற்சித்தேன். வழக்கமான வெளிப்பாடுகள் தங்களை ஒரு கமுக்கமான, சூனியம் (அல்லது, மேலும் நேர்மறையானதாக இருக்க வேண்டும், மம்போ-சம்போ கடிதங்கள் மற்றும் அறிகுறிகளின் சீரற்ற சரம்) போலத் தோன்றினாலும், அவை அனைத்தும் சிக்கலானவை அல்ல என்று நான் உறுதியளிக்கிறேன். வழக்கமான வெளிப்பாடுகளைப் புரிந்துகொள்வவர்கள் கூட மிகவும் சிக்கலானவற்றைப் படிப்பதில் சிக்கல் உள்ளது, ஆனால் அவற்றை எழுதுவது கடினம் அல்ல- நீங்கள் வெளிப்பாட்டை படிப்படியாக உருவாக்குகிறீர்கள். எனவே, ஒரு படி எடுத்து முயல் துளைக்குள் என்னைப் பின்தொடரவும்.

en: Where in calibre can you use regular expressions?
ta: வழக்கமான வெளிப்பாடுகளை நீங்கள் எங்கு பயன்படுத்தலாம்?

en: There are a few places calibre uses regular expressions. There's the :guilabel:`Search & replace` in conversion options, metadata detection from filenames in the import settings and Search & replace when editing the metadata of books in bulk. The calibre book editor can also use regular expressions in its :guilabel:`Search and replace` feature. Finally, you can use regular expressions when searching the calibre book list and when searching inside the calibre E-book viewer.
ta: காலிபர் வழக்கமான வெளிப்பாடுகளைப் பயன்படுத்தும் சில இடங்கள் உள்ளன. உள்ளது: கிலாபெல்: மாற்று விருப்பங்களில் `தேடல் மற்றும் மாற்றவும்`, இறக்குமதி அமைப்புகளில் உள்ள கோப்பு பெயர்களிடமிருந்து மேனிலை தரவு கண்டறிதல் மற்றும் புத்தகங்களின் மெட்டாடேட்டாவை மொத்தமாக திருத்தும்போது தேடல் மற்றும் மாற்றவும். காலிபர் புத்தக ஆசிரியர் அதன் வழக்கமான வெளிப்பாடுகளையும் அதன்: கிலாபெல்: `தேடல் மற்றும் மாற்றுதல்` அம்சத்திலும் பயன்படுத்தலாம். இறுதியாக, காலிபர் புத்தக பட்டியலைத் தேடும்போது மற்றும் காலிபர் மின் புத்தக பார்வையாளருக்குள் தேடும்போது வழக்கமான வெளிப்பாடுகளைப் பயன்படுத்தலாம்.

en: What on earth *is* a regular expression?
ta: பூமியில் என்ன * * ஒரு வழக்கமான வெளிப்பாடு?

en: A regular expression is a way to describe sets of strings. A single regular expression can *match* a number of different strings. This is what makes regular expression so powerful -- they are a concise way of describing a potentially large number of variations.
ta: வழக்கமான வெளிப்பாடு என்பது சரங்களின் தொகுப்புகளை விவரிக்க ஒரு வழியாகும். ஒரு வழக்கமான வெளிப்பாடு * வெவ்வேறு சரங்களுடன் * பொருந்தலாம். இதுதான் வழக்கமான வெளிப்பாட்டை மிகவும் சக்திவாய்ந்ததாக ஆக்குகிறது - அவை அதிக எண்ணிக்கையிலான மாறுபாடுகளை விவரிக்கும் ஒரு சுருக்கமான வழியாகும்.

en: I'm using string here in the sense it is used in programming languages: a string of one or more characters, characters including actual characters, numbers, punctuation and so-called whitespace (linebreaks, tabulators etc.). Please note that generally, uppercase and lowercase characters are not considered the same, thus "a" being a different character from "A" and so forth. In calibre, regular expressions are case insensitive in the Search bar, but not in the conversion options. There's a way to make every regular expression case insensitive, but we'll discuss that later. It gets complicated because regular expressions allow for variations in the strings it matches, so one expression can match multiple strings, which is why people bother using them at all. More on that in a bit.
ta: நிரலாக்க மொழிகளில் பயன்படுத்தப்படும் அர்த்தத்தில் நான் இங்கே சரம் பயன்படுத்துகிறேன்: ஒன்று அல்லது அதற்கு மேற்பட்ட எழுத்துக்களின் சரம், உண்மையான எழுத்துக்கள், எண்கள், நிறுத்தற்குறி மற்றும் வைட்ச்பேச் (லைன் பிரேக்குகள், டேபுலேட்டர்கள் போன்றவை) உள்ளிட்ட எழுத்துக்கள். பொதுவாக, பெரிய எழுத்துக்கள் மற்றும் சிறிய எழுத்துக்கள் ஒரே மாதிரியாக கருதப்படுவதில்லை என்பதை நினைவில் கொள்க, இதனால் "a" மற்றும் பலவற்றிலிருந்து வேறுபட்ட பாத்திரம் "ஒரு". காலிபரில், வழக்கமான வெளிப்பாடுகள் தேடல் பட்டியில் உணர்வற்றவை, ஆனால் மாற்று விருப்பங்களில் அல்ல. ஒவ்வொரு வழக்கமான வெளிப்பாடு வழக்கையும் உணர்வற்றதாக மாற்ற ஒரு வழி உள்ளது, ஆனால் பின்னர் அதைப் பற்றி விவாதிப்போம். இது சிக்கலானதாகிறது, ஏனெனில் வழக்கமான வெளிப்பாடுகள் அது பொருந்தக்கூடிய சரங்களில் மாறுபாடுகளை அனுமதிக்கின்றன, எனவே ஒரு வெளிப்பாடு பல சரங்களுடன் பொருந்தக்கூடும், அதனால்தான் மக்கள் அவற்றைப் பயன்படுத்துவதைத் தொந்தரவு செய்கிறார்கள். கொஞ்சம் கூட.

en: Care to explain?
ta: விளக்க கவனமா?

en: Well, that's why we're here. First, this is the most important concept in regular expressions: *A string by itself is a regular expression that matches itself*. That is to say, if I wanted to match the string ``"Hello, World!"`` using a regular expression, the regular expression to use would be ``Hello, World!``. And yes, it really is that simple. You'll notice, though, that this *only* matches the exact string ``"Hello, World!"``, not e.g. ``"Hello, wOrld!"`` or ``"hello, world!"`` or any other such variation.
ta: சரி, அதனால்தான் நாங்கள் இங்கே இருக்கிறோம். முதலாவதாக, வழக்கமான வெளிப்பாடுகளில் இது மிக முக்கியமான கருத்தாகும்: *ஒரு சரம் தானே தன்னுடன் பொருந்தக்கூடிய ஒரு வழக்கமான வெளிப்பாடாகும் *. அதாவது, நான் `` "அலோ, உலகம்!" என்ற சரத்தை பொருத்த விரும்பினால், வழக்கமான வெளிப்பாட்டைப் பயன்படுத்தி, பயன்படுத்த வழக்கமான வெளிப்பாடு `` அலோ, உலகம்! ``. ஆம், அது உண்மையில் எளிது. இருப்பினும், இது * சரியான சரத்துடன் `` "அலோ, உலகம்!" ``, எ.கா. `` "அலோ, உலகம்!" `` அல்லது `` "அலோ, உலகம்!"

en: That doesn't sound too bad. What's next?
ta: அது மிகவும் மோசமாக இல்லை. அடுத்தது என்ன?

en: Next is the beginning of the really good stuff. Remember where I said that regular expressions can match multiple strings? This is where it gets a little more complicated. Say, as a somewhat more practical exercise, the e-book you wanted to convert had a nasty footer counting the pages, like "Page 5 of 423". Obviously the page number would rise from 1 to 423, thus you'd have to match 423 different strings, right? Wrong, actually: regular expressions allow you to define sets of characters that are matched: To define a set, you put all the characters you want to be in the set into square brackets. So, for example, the set ``[abc]`` would match either the character "a", "b" or "c". *Sets will always only match one of the characters in the set*. They "understand" character ranges, that is, if you wanted to match all the lower case characters, you'd use the set ``[a-z]`` for lower- and uppercase characters you'd use ``[a-zA-Z]`` and so on. Got the idea? So, obviously, using the expression ``Page [0-9] of 423`` you'd be able to match the first 9 pages, thus reducing the expressions needed to three: The second expression ``Page [0-9][0-9] of 423`` would match all two-digit page numbers, and I'm sure you can guess what the third expression would look like. Yes, go ahead. Write it down.
ta: அடுத்தது நல்ல விசயங்களின் துவக்கம். வழக்கமான வெளிப்பாடுகள் பல சரங்களுடன் பொருந்தக்கூடும் என்று நான் சொன்னது நினைவிருக்கிறதா? இது இன்னும் கொஞ்சம் சிக்கலானது. சற்றே நடைமுறை பயிற்சியாக, நீங்கள் மாற்ற விரும்பிய மின் நூல் "423 இன் பக்கம் 5" போன்ற பக்கங்களை எண்ணும் ஒரு மோசமான அடிக்குறிப்பைக் கொண்டிருந்தது. பக்க எண் 1 முதல் 423 வரை உயரும், இதனால் நீங்கள் 423 வெவ்வேறு சரங்களை பொருத்த வேண்டும், இல்லையா? தவறு, உண்மையில்: வழக்கமான வெளிப்பாடுகள் பொருந்தக்கூடிய எழுத்துக்களின் தொகுப்புகளை வரையறுக்க உங்களை அனுமதிக்கின்றன: ஒரு தொகுப்பை வரையறுக்க, நீங்கள் விரும்பும் அனைத்து எழுத்துக்களையும் தொகுப்பில் சதுர அடைப்புக்குறிக்குள் வைக்கவும். எனவே, எடுத்துக்காட்டாக, `` [ஏபிசி] `` என்ற தொகுப்பு "ஏ", "பி" அல்லது "சி" என்ற எழுத்துடன் பொருந்தும். *செட் எப்போதும் தொகுப்பில் உள்ள எழுத்துக்களில் ஒன்றை மட்டுமே பொருத்தும்*. அவை எழுத்து வரம்புகளை "புரிந்துகொள்கின்றன", அதாவது, நீங்கள் அனைத்து சிறிய எழுத்துக்களையும் பொருத்த விரும்பினால், நீங்கள் `` [a-z] `` என்ற தொகுப்பை நீங்கள் பயன்படுத்துவீர்கள் `` [a-za -z] `` மற்றும் பல. சிந்தனை கிடைத்ததா? எனவே, வெளிப்படையாக, 423`` இன் `` பக்கம் [0-9] என்ற வெளிப்பாட்டைப் பயன்படுத்தி நீங்கள் முதல் 9 பக்கங்களுடன் பொருந்த முடியும், இதனால் தேவையான வெளிப்பாடுகளை மூன்றாகக் குறைக்கிறீர்கள்: இரண்டாவது வெளிப்பாடு `` பக்கம் [0-9] [0-9] இன் 423`` அனைத்து இரண்டு இலக்க பக்க எண்களுக்கும் பொருந்தும், மேலும் மூன்றாவது வெளிப்பாடு எப்படி இருக்கும் என்று நீங்கள் யூகிக்க முடியும் என்று நான் நம்புகிறேன். ஆம், மேலே செல்லுங்கள். அதை எழுதி வை.

en: Hey, neat! This is starting to make sense!
ta: ஏய், சுத்தமாக! இது அர்த்தமுள்ளதாகத் தொடங்குகிறது!

en: I was hoping you'd say that. But brace yourself, now it gets even better! We just saw that using sets, we could match one of several characters at once. But you can even repeat a character or set, reducing the number of expressions needed to handle the above page number example to one. Yes, ONE! Excited? You should be! It works like this: Some so-called special characters, "+", "?" and "*", *repeat the single element preceding them*. (Element means either a single character, a character set, an escape sequence or a group (we'll learn about those last two later)- in short, any single entity in a regular expression). These characters are called wildcards or quantifiers. To be more precise, "?" matches *0 or 1* of the preceding element, "*" matches *0 or more* of the preceding element and "+" matches *1 or more* of the preceding element. A few examples: The expression ``a?`` would match either "" (which is the empty string, not strictly useful in this case) or "a", the expression ``a*`` would match "", "a", "aa" or any number of a's in a row, and, finally, the expression ``a+`` would match "a", "aa" or any number of a's in a row (Note: it wouldn't match the empty string!). Same deal for sets: The expression ``[0-9]+`` would match *every integer number there is*! I know what you're thinking, and you're right: If you use that in the above case of matching page numbers, wouldn't that be the single one expression to match all the page numbers? Yes, the expression ``Page [0-9]+ of 423`` would match every page number in that book!
ta: நீங்கள் அதைச் சொல்வீர்கள் என்று நான் நம்புகிறேன். ஆனால் உங்களை நீங்களே இணைத்துக் கொள்ளுங்கள், இப்போது அது இன்னும் சிறப்பாகிறது! தொகுப்புகளைப் பயன்படுத்தி, ஒரே நேரத்தில் பல கதாபாத்திரங்களில் ஒன்றை பொருத்த முடியும் என்பதை நாங்கள் பார்த்தோம். ஆனால் நீங்கள் ஒரு பாத்திரத்தை அல்லது அமைக்கப்பட்டிருக்கலாம், மேலே உள்ள பக்க எண் உதாரணத்தை ஒன்றைக் கையாள தேவையான வெளிப்பாடுகளின் எண்ணிக்கையை குறைக்கலாம். ஆம், ஒன்று! உற்சாகமா? நீங்கள் இருக்க வேண்டும்! இது இப்படி வேலை செய்கிறது: சில சிறப்பு எழுத்துக்கள் என்று அழைக்கப்படுபவை, "+", "?" மற்றும் "*",*அவர்களுக்கு முந்தைய ஒற்றை உறுப்பை மீண்டும் செய்யவும்*. . இந்த எழுத்துக்கள் வைல்டு கார்டுகள் அல்லது அளவுகோல்கள் என்று அழைக்கப்படுகின்றன. இன்னும் துல்லியமாக இருக்க, "?" முந்தைய உறுப்பின்*0 அல்லது 1*உடன் பொருந்துகிறது, "*" முந்தைய உறுப்பின்*0 அல்லது அதற்கு மேற்பட்டவை*பொருந்துகிறது மற்றும் "+" முந்தைய உறுப்பின்*1 அல்லது அதற்கு மேற்பட்ட*பொருந்துகிறது. சில எடுத்துக்காட்டுகள்: `` அ? ஒரு "," aa "அல்லது ஒரு வரிசையில் உள்ள a இன் எத்தனை, மற்றும், இறுதியாக, வெளிப்பாடு` `a+` `` "a", "aa" அல்லது ஒரு வரிசையில் உள்ள எந்தவொரு a களும் பொருந்தும் (குறிப்பு: அது இருக்காது வெற்று சரத்தை பொருத்துங்கள்!). தொகுப்புகளுக்கான அதே ஒப்பந்தம்: `` [0-9]+`` என்ற வெளிப்பாடு *இருக்கும் ஒவ்வொரு முழு எண் எண்ணும் *! நீங்கள் என்ன நினைக்கிறீர்கள் என்று எனக்குத் தெரியும், நீங்கள் சொல்வது சரிதான்: பக்க எண்களைப் பொருத்துவதற்கு மேலே உள்ள விசயத்தில் நீங்கள் அதைப் பயன்படுத்தினால், எல்லா பக்க எண்களையும் பொருத்த ஒற்றை ஒரு வெளிப்பாடாக இருக்காது? ஆம், 423`` இன் `` பக்கம் [0-9] என்ற வெளிப்பாடு அந்த புத்தகத்தில் உள்ள ஒவ்வொரு பக்க எண்ணிற்கும் பொருந்தும்!

en: A note on these quantifiers: They generally try to match as much text as possible, so be careful when using them. This is called "greedy behaviour"- I'm sure you get why. It gets problematic when you, say, try to match a tag. Consider, for example, the string ``"<p class="calibre2">Title here</p>"`` and let's say you'd want to match the opening tag (the part between the first pair of angle brackets, a little more on tags later). You'd think that the expression ``<p.*>`` would match that tag, but actually, it matches the whole string! (The character "." is another special character. It matches anything *except* linebreaks, so, basically, the expression ``.*`` would match any single line you can think of). Instead, try using ``<p.*?>`` which makes the quantifier ``"*"`` non-greedy. That expression would only match the first opening tag, as intended. There's actually another way to accomplish this: The expression ``<p[^>]*>`` will match that same opening tag- you'll see why after the next section. Just note that there quite frequently is more than one way to write a regular expression.
ta: இந்த அளவுகோல்களைப் பற்றிய ஒரு குறிப்பு: அவை பொதுவாக முடிந்தவரை உரையை பொருத்த முயற்சிக்கின்றன, எனவே அவற்றைப் பயன்படுத்தும் போது கவனமாக இருங்கள். இது "பேராசை நடத்தை" என்று அழைக்கப்படுகிறது- ஏன் என்று நீங்கள் நம்புகிறேன். நீங்கள் ஒரு குறிச்சொல்லுடன் பொருந்த முயற்சிக்கும்போது இது சிக்கலாகிறது. எடுத்துக்காட்டாக, சரம் `` "<p class =" calibre2 "> தலைப்பு இங்கே </p>" `` மற்றும் நீங்கள் திறப்பு குறிச்சொல்லுடன் பொருந்த விரும்புகிறீர்கள் என்று சொல்லலாம் (முதல் இணை கோண அடைப்புக்குறிக்கு இடையிலான பகுதி, குறிச்சொற்களில் இன்னும் கொஞ்சம்). `` <p.*> `` அந்த குறிச்சொல்லுடன் பொருந்தும் என்று நீங்கள் நினைப்பீர்கள், ஆனால் உண்மையில், இது முழு சரத்திற்கும் பொருந்துகிறது! . அதற்கு பதிலாக, `` <ப.*? அந்த வெளிப்பாடு நோக்கம் கொண்ட முதல் தொடக்க குறிச்சொல்லுடன் மட்டுமே பொருந்தும். இதைச் செய்ய உண்மையில் மற்றொரு வழி உள்ளது: `` <p [^>]*> `` என்ற வெளிப்பாடு அதே திறப்பு குறிச்சொல்லுடன் பொருந்தும்- அடுத்த பகுதிக்குப் பிறகு ஏன் என்று பார்ப்பீர்கள். வழக்கமான வெளிப்பாட்டை எழுத ஒன்றுக்கு மேற்பட்ட வழிகள் உள்ளன என்பதை நினைவில் கொள்க.

en: Well, these special characters are very neat and all, but what if I wanted to match a dot or a question mark?
ta: சரி, இந்த சிறப்பு கதாபாத்திரங்கள் மிகவும் சுத்தமாகவும் அனைத்தும், ஆனால் நான் ஒரு புள்ளி அல்லது கேள்விக்குறியை பொருத்த விரும்பினால் என்ன செய்வது?

en: You can of course do that: Just put a backslash in front of any special character and it is interpreted as the literal character, without any special meaning. This pair of a backslash followed by a single character is called an escape sequence, and the act of putting a backslash in front of a special character is called escaping that character. An escape sequence is interpreted as a single element. There are of course escape sequences that do more than just escaping special characters, for example ``"\t"`` means a tabulator. We'll get to some of the escape sequences later. Oh, and by the way, concerning those special characters: Consider any character we discuss in this introduction as having some function to be special and thus needing to be escaped if you want the literal character.
ta: நீங்கள் நிச்சயமாக அதைச் செய்யலாம்: எந்தவொரு சிறப்பு கதாபாத்திரத்திற்கும் முன்னால் ஒரு பின்சாய்வுக்கோடுகளை வைக்கவும், அது எந்தவொரு சிறப்பு அர்த்தமும் இல்லாமல், நேரடி பாத்திரமாக விளக்கப்படுகிறது. ஒரு பின்னடைவின் இந்த இணை ஒரு கதாபாத்திரத்தைத் தொடர்ந்து ஒரு தப்பிக்கும் வரிசை என்று அழைக்கப்படுகிறது, மேலும் ஒரு சிறப்பு கதாபாத்திரத்திற்கு முன்னால் ஒரு பின்சாய்வுக்கோடுகளை வைக்கும் செயல் அந்த பாத்திரத்திலிருந்து தப்பிப்பது என்று அழைக்கப்படுகிறது. ஒரு தப்பிக்கும் வரிசை ஒரு ஒற்றை உறுப்பு என்று விளக்கப்படுகிறது. சிறப்பு எழுத்துக்களில் இருந்து தப்பிப்பதை விட அதிகமாகச் செய்யும் எச்கேப் காட்சிகள் உள்ளன, எடுத்துக்காட்டாக `` "\ t" `` என்பது ஒரு தாவல். தப்பிக்கும் சில காட்சிகளை பின்னர் பெறுவோம். ஓ, மற்றும் அந்த சிறப்பு கதாபாத்திரங்களைப் பற்றி: இந்த அறிமுகத்தில் நாம் விவாதிக்கும் எந்தவொரு கதாபாத்திரமும் சில செயல்பாடுகளை சிறப்பு வாய்ந்ததாகக் கொண்டிருப்பதாகவும், இதனால் நீங்கள் நேரடி தன்மையை விரும்பினால் தப்பிக்க வேண்டும் என்றும் கருதுங்கள்.

en: So, what are the most useful sets?
ta: எனவே, மிகவும் பயனுள்ள தொகுப்புகள் யாவை?

en: Knew you'd ask. Some useful sets are ``[0-9]`` matching a single number, ``[a-z]`` matching a single lowercase letter, ``[A-Z]`` matching a single uppercase letter, ``[a-zA-Z]`` matching a single letter and ``[a-zA-Z0-9]`` matching a single letter or number. You can also use an escape sequence as shorthand:
ta: நீங்கள் கேட்பீர்கள் என்று தெரியும். சில பயனுள்ள தொகுப்புகள் `` [0-9] `` ஒரு எண்ணுடன் பொருந்துகின்றன, `` [a-z] `` ஒரு சிறிய கடிதத்தை பொருத்துதல், `` [a-z] `` ஒரு பெரிய எழுத்துக் கடிதத்துடன் பொருந்துகிறது, `` [a-zaa -z] `` ஒரு கடிதத்தையும் `` [a-za-z0-9] `` ஒரு கடிதம் அல்லது எண்ணுடன் பொருந்தும். நீங்கள் ஒரு தப்பிக்கும் வரிசையை சுருக்கெழுத்து எனப் பயன்படுத்தலாம்:

en: ``\d``
ta: `` \ d``

en: is equivalent to ``[0-9]``
ta: `` [0-9] `` க்கு சமம்

en: ``\w``
ta: `` \ w``

en: is equivalent to ``[a-zA-Z0-9_]``
ta: `` [a-za-z0-9_] `` க்கு சமம்

en: ``\s``
ta: `` \ s``

en: is equivalent to any whitespace
ta: எந்த இடைவெளிக்கும் சமம்

en: "Whitespace" is a term for anything that won't be printed. These characters include space, tabulator, line feed, form feed, carriage return, non-breaking spaces, etc.
ta: "வைட்ச்பேச்" என்பது அச்சிடப்படாத எதற்கும் ஒரு சொல். இந்த எழுத்துக்களில் இடம், தாவல், வரி தீவனம், படிவ ஊட்டம், வண்டி திரும்ப, உடைக்கும் இடங்கள் போன்றவை அடங்கும்.

en: The upper and lower case sets may match both upper and lowercase if the setting to make searches case insensitive is enabled. Such settings are found, for instance in Preferences->Searching in calibre itself and on the Search panel in the calibre :guilabel:`E-book viewer` as well as the calibre :guilabel:`Edit book` tool.
ta: தேடல் வழக்கை உணர்வற்றதாக மாற்றுவதற்கான அமைப்பு இயக்கப்பட்டிருந்தால், மேல் மற்றும் கீழ் வழக்கு தொகுப்புகள் மேல் மற்றும் சிறிய எழுத்துக்களுடன் பொருந்தக்கூடும். இத்தகைய அமைப்புகள் காணப்படுகின்றன, உதாரணமாக விருப்பத்தேர்வுகள்-> காலிபர் மற்றும் காலிபரில் உள்ள தேடல் குழுவில் தேடுவது: கிலாபெல்: `மின் புத்தக பார்வையாளர்` மற்றும் திறமை: கிலாபெல்:` புத்தகத்தை திருத்து புத்தக` கருவி.

en: As a last note on sets, you can also define a set as any character *but* those in the set. You do that by including the character ``"^"`` as the *very first character in the set*. Thus, ``[^a]`` would match any character excluding "a". That's called complementing the set. Those escape sequence shorthands we saw earlier can also be complemented: ``"\D"`` means any non-number character, thus being equivalent to ``[^0-9]``. The other shorthands can be complemented by, you guessed it, using the respective uppercase letter instead of the lowercase one. So, going back to the example ``<p[^>]*>`` from the previous section, now you can see that the character set it's using tries to match any character except for a closing angle bracket.
ta: செட்களின் கடைசி குறிப்பாக, நீங்கள் ஒரு தொகுப்பை எந்த கதாபாத்திரமாகவும் வரையறுக்கலாம் * ஆனால் * தொகுப்பில் உள்ளவர்கள். `` "^" `` என்ற கதாபாத்திரத்தை தொகுப்பின் முதல் எழுத்தாக *சேர்ப்பதன் மூலம் நீங்கள் அதைச் செய்கிறீர்கள் *. எனவே, `` [^a] `` "a" ஐத் தவிர வேறு எந்த பாத்திரத்தையும் பொருத்தும். அது தொகுப்பை நிறைவு செய்வது என்று அழைக்கப்படுகிறது. நாம் முன்னர் பார்த்த அந்த தப்பிக்கும் வரிசை சுருக்கெழுத்து ஆகியவற்றை நிறைவு செய்யலாம்: `` "\ d" `` `என்பது எந்தவொரு எண் அல்லாத தன்மையையும் குறிக்கிறது, இதனால்` `[^0-9]` `க்கு சமம். மற்ற சுருக்கெழுத்து ஆகியவற்றால் நிறைவு செய்யப்படலாம், நீங்கள் அதை யூகித்தீர்கள், சிறிய எழுத்துக்கு பதிலாக அந்தந்த பெரிய எழுத்துக்களைப் பயன்படுத்தி. எனவே, முந்தைய பிரிவில் இருந்து `` <p [^>]*> `` எடுத்துக்காட்டுக்குச் செல்வது, ஒரு இறுதி கோண அடைப்புக்குறியைத் தவிர வேறு எந்த கதாபாத்திரத்தையும் பொருத்த முயற்சிகளைப் பயன்படுத்தும் எழுத்து அமைக்கப்பட்டிருப்பதை இப்போது நீங்கள் காணலாம்.

en: But if I had a few varying strings I wanted to match, things get complicated?
ta: ஆனால் நான் பொருந்த விரும்பிய சில மாறுபட்ட சரங்களை என்னிடம் வைத்திருந்தால், விசயங்கள் சிக்கலானதா?

en: Fear not, life still is good and easy. Consider this example: The book you're converting has "Title" written on every odd page and "Author" written on every even page. Looks great in print, right? But in e-books, it's annoying. You can group whole expressions in normal parentheses, and the character ``"|"`` will let you match *either* the expression to its right *or* the one to its left. Combine those and you're done. Too fast for you? Okay, first off, we group the expressions for odd and even pages, thus getting ``(Title)(Author)`` as our two needed expressions. Now we make things simpler by using the vertical bar (``"|"`` is called the vertical bar character): If you use the expression ``(Title|Author)`` you'll either get a match for "Title" (on the odd pages) or you'd match "Author" (on the even pages). Well, wasn't that easy?
ta: பயப்பட வேண்டாம், வாழ்க்கை இன்னும் நல்லது மற்றும் எளிதானது. இந்த எடுத்துக்காட்டைக் கவனியுங்கள்: நீங்கள் மாற்றும் புத்தகத்தில் ஒவ்வொரு ஒற்றைப்படை பக்கத்திலும் எழுதப்பட்ட "தலைப்பு" மற்றும் ஒவ்வொரு பக்கத்திலும் "ஆசிரியர்" எழுதப்பட்டுள்ளது. அச்சில் அழகாக இருக்கிறது, இல்லையா? ஆனால் மின் புத்தகங்களில், இது எரிச்சலூட்டும். நீங்கள் முழு வெளிப்பாடுகளையும் சாதாரண அடைப்புக்குறிக்குள் தொகுக்கலாம், மேலும் `` "| அவற்றை இணைக்கவும், நீங்கள் முடித்துவிட்டீர்கள். உங்களுக்கு மிக வேகமாக? சரி, முதலில், நாங்கள் ஒற்றைப்படை மற்றும் பக்கங்களுக்கான வெளிப்பாடுகளை தொகுக்கிறோம், இதனால் `` (தலைப்பு) (ஆசிரியர்) `` எங்கள் இரண்டு தேவையான வெளிப்பாடுகளாகப் பெறுகிறோம். இப்போது செங்குத்து பட்டியைப் பயன்படுத்துவதன் மூலம் விசயங்களை எளிமையாக்குகிறோம் (`` "| "(ஒற்றைப்படை பக்கங்களில்) அல்லது நீங்கள்" எழுத்தாளர் "(கூட பக்கங்களில்) பொருந்துவீர்கள். சரி, அது எளிதானதல்லவா?

en: You can, of course, use the vertical bar without using grouping parentheses, as well. Remember when I said that quantifiers repeat the element preceding them? Well, the vertical bar works a little differently: The expression "Title|Author" will also match either the string "Title" or the string "Author", just as the above example using grouping. *The vertical bar selects between the entire expression preceding and following it*. So, if you wanted to match the strings "Calibre" and "calibre" and wanted to select only between the upper- and lowercase "c", you'd have to use the expression ``(c|C)alibre``, where the grouping ensures that only the "c" will be selected. If you were to use ``c|Calibre``, you'd get a match on the string "c" or on the string "Calibre", which isn't what we wanted. In short: If in doubt, use grouping together with the vertical bar.
ta: குழுவில் அடைப்புக்குறிப்புகளைப் பயன்படுத்தாமல் செங்குத்து பட்டியைப் பயன்படுத்தலாம். அளவுகோல்கள் அவர்களுக்கு முந்தைய உறுப்பை மீண்டும் என்று நான் சொன்னபோது நினைவிருக்கிறதா? சரி, செங்குத்து பட்டி சற்று வித்தியாசமாக செயல்படுகிறது: "தலைப்பு | ஆசிரியர்" என்ற வெளிப்பாடு "தலைப்பு" என்ற சரம் அல்லது "ஆசிரியர்" என்ற சரம் பொருந்தும், மேலே உள்ள எடுத்துக்காட்டு குழுமத்தைப் பயன்படுத்துகிறது. *செங்குத்துப் பட்டி அதற்கு முந்தைய மற்றும் பின்பற்றும் முழு வெளிப்பாட்டிற்கும் இடையில் தேர்வு செய்கிறது*. எனவே, நீங்கள் "காலிபர்" மற்றும் "காலிபர்" சரங்களை பொருத்த விரும்பினால், மேல் மற்றும் சிறிய "சி" க்கு இடையில் மட்டுமே தேர்ந்தெடுக்க விரும்பினால், நீங்கள் `` (சி | சி) அலிப்ரே`` என்ற வெளிப்பாட்டைப் பயன்படுத்த வேண்டும் "சி" மட்டுமே தேர்ந்தெடுக்கப்படும் என்பதை குழுமம் உறுதி செய்கிறது. நீங்கள் `` சி | காலிபிரே`` ஐப் பயன்படுத்தினால், நீங்கள் "சி" என்ற சரத்தில் அல்லது "காலிபர்" என்ற சரத்தில் ஒரு பொருத்தத்தைப் பெறுவீர்கள், இது நாங்கள் விரும்பியதல்ல. சுருக்கமாக: ஐயம் இருந்தால், செங்குத்து பட்டியுடன் குழுவை பயன்படுத்தவும்.

en: You missed...
ta: நீ தவற விட்டாய்...

en: ... wait just a minute, there's one last, really neat thing you can do with groups. If you have a group that you previously matched, you can use references to that group later in the expression: Groups are numbered starting with 1, and you reference them by escaping the number of the group you want to reference, thus, the fifth group would be referenced as ``\5``. So, if you searched for ``([^ ]+) \1`` in the string "Test Test", you'd match the whole string!
ta: ... ஒரு மணித்துளி காத்திருங்கள், நீங்கள் குழுக்களுடன் செய்யக்கூடிய கடைசி, மிகவும் சுத்தமாக ஒன்று இருக்கிறது. நீங்கள் முன்பு பொருந்திய ஒரு குழு உங்களிடம் இருந்தால், அந்தக் குழுவைப் பற்றிய குறிப்புகளை பின்னர் வெளிப்பாட்டில் பயன்படுத்தலாம்: குழுக்கள் 1 உடன் தொடங்கி எண்ணப்படுகின்றன, மேலும் நீங்கள் குறிப்பிட விரும்பும் குழுவின் எண்ணிக்கையிலிருந்து தப்பிப்பதன் மூலம் அவற்றைக் குறிப்பிடுகிறீர்கள், இதனால், ஐந்தாவது குழு `` \ 5`` என குறிப்பிடப்படும். எனவே, நீங்கள் "சோதனை சோதனை" என்ற சரத்தில் `` ([^]+) \ 1`` தேடியால், நீங்கள் முழு சரத்தையும் பொருத்துவீர்கள்!

en: In the beginning, you said there was a way to make a regular expression case insensitive?
ta: ஆரம்பத்தில், ஒரு வழக்கமான வெளிப்பாடு வழக்கை உணர்ச்சியற்றதாக மாற்ற ஒரு வழி இருப்பதாக நீங்கள் சொன்னீர்கள்?

en: Yes, I did, thanks for paying attention and reminding me. You can tell calibre how you want certain things handled by using something called flags. You include flags in your expression by using the special construct ``(?flags go here)`` where, obviously, you'd replace "flags go here" with the specific flags you want. For ignoring case, the flag is ``i``, thus you include ``(?i)`` in your expression. Thus, ``(?i)test`` would match "Test", "tEst", "TEst" and any case variation you could think of.
ta: ஆமாம், நான் செய்தேன், கவனம் செலுத்தி எனக்கு நினைவூட்டியதற்கு நன்றி. கொடிகள் என்று அழைக்கப்படும் ஒன்றைப் பயன்படுத்துவதன் மூலம் சில விசயங்களை எவ்வாறு கையாள விரும்புகிறீர்கள் என்பதை நீங்கள் காலிபருக்குச் சொல்லலாம். சிறப்பு கட்டமைப்பைப் பயன்படுத்துவதன் மூலம் உங்கள் வெளிப்பாட்டில் கொடிகளைச் சேர்க்கிறீர்கள் `` (? கொடிகள் இங்கே செல்கின்றன) `` எங்கே, வெளிப்படையாக, நீங்கள் விரும்பும் குறிப்பிட்ட கொடிகளுடன் "கொடிகள் இங்கே செல்கின்றன". வழக்கைப் புறக்கணிக்க, கொடி `` நான்``, இதனால் உங்கள் வெளிப்பாட்டில் `` (? i) `` சேர்க்கவும். எனவே, `` (? நான்) சோதனை`` "சோதனை", "சோதனை", "சோதனை" மற்றும் நீங்கள் நினைக்கும் எந்த வழக்கு மாறுபாட்டையும் பொருத்துகிறது.

en: Another useful flag lets the dot match any character at all, *including* the newline, the flag ``s``. If you want to use multiple flags in an expression, just put them in the same statement: ``(?is)`` would ignore case and make the dot match all. It doesn't matter which flag you state first, ``(?si)`` would be equivalent to the above.
ta: மற்றொரு பயனுள்ள கொடி dot எந்தவொரு கதாபாத்திரத்தையும் பொருத்த அனுமதிக்கிறது, * புதிய வரி, கொடி `` s`` உட்பட. நீங்கள் ஒரு வெளிப்பாட்டில் பல கொடிகளைப் பயன்படுத்த விரும்பினால், அவற்றை ஒரே அறிக்கையில் வைக்கவும்: `` (? is) `` வழக்கை புறக்கணித்து, புள்ளி அனைத்தையும் பொருத்தமாக்கும். நீங்கள் முதலில் எந்தக் கொடியைக் கூறினாலும் பரவாயில்லை, `` (? எச்) `` மேற்கூறியவற்றுக்கு சமமாக இருக்கும்.

en: I think I'm beginning to understand these regular expressions now... how do I use them in calibre?
ta: இந்த வழக்கமான வெளிப்பாடுகளை நான் இப்போது புரிந்து கொள்ளத் தொடங்கினேன் என்று நினைக்கிறேன் ... அவற்றை காலிபரில் எவ்வாறு பயன்படுத்துவது?

en: Conversions
ta: மாற்றங்கள்

en: Let's begin with the conversion settings, which is really neat. In the :guilabel:`Search & replace` part, you can input a regexp (short for regular expression) that describes the string that will be replaced during the conversion. The neat part is the wizard. Click on the wizard staff and you get a preview of what calibre "sees" during the conversion process. Scroll down to the string you want to remove, select and copy it, paste it into the regexp field on top of the window. If there are variable parts, like page numbers or so, use sets and quantifiers to cover those, and while you're at it, remember to escape special characters, if there are some. Hit the button labeled :guilabel:`Test` and calibre highlights the parts it would replace were you to use the regexp. Once you're satisfied, hit OK and convert. Be careful if your conversion source has tags like this example::
ta: மாற்று அமைப்புகளுடன் ஆரம்பிக்கலாம், இது மிகவும் சுத்தமாக இருக்கிறது. இல்: கிலாபெல்: `தேடல் மற்றும் மாற்றுதல்` பகுதியை, மாற்றத்தின் போது மாற்றப்படும் சரத்தை விவரிக்கும் ஒரு regexp (வழக்கமான வெளிப்பாட்டிற்கு குறுகிய) உள்ளிடலாம். சுத்தமாக பகுதி வழிகாட்டி. வழிகாட்டி ஊழியர்களைக் சொடுக்கு செய்து, மாற்று செயல்பாட்டின் போது காலிபர் "பார்க்கும்" என்ன முன்னோட்டத்தைப் பெறுவீர்கள். நீங்கள் அகற்ற விரும்பும் சரத்திற்கு கீழே உருட்டவும், தேர்ந்தெடுத்து நகலெடுக்கவும், சாளரத்தின் மேல் உள்ள regexp புலத்தில் ஒட்டவும். பக்க எண்கள் அல்லது அதற்கு மேற்பட்ட மாறி பாகங்கள் இருந்தால், அவற்றை மறைக்க செட் மற்றும் அளவுகோல்களைப் பயன்படுத்தவும், நீங்கள் அதில் இருக்கும்போது, சில இருந்தால் சிறப்பு எழுத்துக்களில் இருந்து தப்பிக்க நினைவில் கொள்ளுங்கள். பெயரிடப்பட்ட பொத்தானை அழுத்தவும்: கிலாபெல்: `டெச்ட்` மற்றும் காலிபர் நீங்கள் regexp ஐப் பயன்படுத்தினால் அது மாற்றக்கூடிய பகுதிகளை எடுத்துக்காட்டுகிறது. நீங்கள் நிறைவு அடைந்ததும், சரி, மாற்றவும். உங்கள் மாற்று மூலத்தில் இந்த எடுத்துக்காட்டு போன்ற குறிச்சொற்கள் இருந்தால் கவனமாக இருங்கள் ::

en: (shamelessly ripped out of `this thread <https://www.mobileread.com/forums/showthread.php?t=75594">`_). You'd have to remove some of the tags as well. In this example, I'd recommend beginning with the tag ``<b class="calibre2">``, now you have to end with the corresponding closing tag (opening tags are ``<tag>``, closing tags are ``</tag>``), which is simply the next ``</b>`` in this case. (Refer to a good HTML manual or ask in the forum if you are unclear on this point). The opening tag can be described using ``<b.*?>``, the closing tag using ``</b>``, thus we could remove everything between those tags using ``<b.*?>.*?</b>``. But using this expression would be a bad idea, because it removes everything enclosed by <b>- tags (which, by the way, render the enclosed text in bold print), and it's a fair bet that we'll remove portions of the book in this way. Instead, include the beginning of the enclosed string as well, making the regular expression ``<b.*?>\s*Generated\s+by\s+ABC\s+Amber\s+LIT.*?</b>`` The ``\s`` with quantifiers are included here instead of explicitly using the spaces as seen in the string to catch any variations of the string that might occur. Remember to check what calibre will remove to make sure you don't remove any portions you want to keep if you test a new expression. If you only check one occurrence, you might miss a mismatch somewhere else in the text. Also note that should you accidentally remove more or fewer tags than you actually wanted to, calibre tries to repair the damaged code after doing the removal.
ta: . . /குறிச்சொல்> ``), இது வெறுமனே அடுத்த `` </b> `` `இந்த விசயத்தில். (ஒரு நல்ல html கையேட்டைப் பார்க்கவும் அல்லது இந்த கட்டத்தில் நீங்கள் தெளிவாக தெரியாவிட்டால் மன்றத்தில் கேளுங்கள்). திறப்பு குறிச்சொல் இருக்கலாம் `` <b.*? ``. ஆனால் இந்த வெளிப்பாட்டைப் பயன்படுத்துவது ஒரு மோசமான யோசனையாக இருக்கும், ஏனென்றால் இது <b>- குறிச்சொற்களால் இணைக்கப்பட்ட அனைத்தையும் நீக்குகிறது (இது, மூடப்பட்ட உரையை தைரியமான அச்சில் வழங்குகிறது), மேலும் இது ஒரு நியாயமான பந்தயம், நாங்கள் அகற்றுவோம் புத்தகத்தின் பகுதிகள் இந்த வழியில். அதற்கு பதிலாக, மூடப்பட்ட சரத்தின் தொடக்கத்தையும் சேர்க்கவும், வழக்கமான வெளிப்பாட்டை `` <b.*? +லிட்.*? நீங்கள் ஒரு புதிய வெளிப்பாட்டை சோதித்தால் நீங்கள் வைத்திருக்க விரும்பும் எந்த பகுதிகளையும் அகற்றவில்லை என்பதை உறுதிப்படுத்த என்ன காலிபர் நீக்கப்படும் என்பதைச் சரிபார்க்க நினைவில் கொள்ளுங்கள். நீங்கள் ஒரு நிகழ்வை மட்டுமே சரிபார்த்தால், உரையில் வேறு எங்காவது பொருந்தாத தன்மையை நீங்கள் இழக்க நேரிடும். நீங்கள் உண்மையில் விரும்பியதை விட அதிகமாக அல்லது குறைவான குறிச்சொற்களை தற்செயலாக அகற்றினால், காலிபர் அகற்றப்பட்ட பிறகு சேதமடைந்த குறியீட்டை சரிசெய்ய முயற்சிக்கிறார்.

en: Adding books
ta: புத்தகங்களைச் சேர்ப்பது

en: Bulk editing metadata
ta: மொத்த திருத்துதல் மேனிலை தரவு

en: Well, that just about concludes the very short introduction to regular expressions. Hopefully I'll have shown you enough to at least get you started and to enable you to continue learning by yourself- a good starting point would be the `Python documentation for regexps <https://docs.python.org/library/re.html>`_.
ta: சரி, இது வழக்கமான வெளிப்பாடுகளுக்கு மிகக் குறுகிய அறிமுகத்தை முடிக்கிறது. குறைந்தபட்சம் உங்களைத் தொடங்குவதற்கும், நீங்களே கற்றுக்கொள்வதற்கும் உங்களுக்கு உதவ நான் உங்களுக்கு போதுமான அளவு காண்பித்திருப்பேன் என்று நம்புகிறேன்- ஒரு நல்ல தொடக்கப் புள்ளி `` பைதான் ஆவணங்கள் regexps <https://docs.python.org/library/re .html> `_.

en: One last word of warning, though: Regexps are powerful, but also really easy to get wrong. calibre provides really great testing possibilities to see if your expressions behave as you expect them to. Use them. Try not to shoot yourself in the foot. (God, I love that expression...). But should you, despite the warning, injure your foot (or any other body parts), try to learn from it.
ta: ஒரு கடைசி எச்சரிக்கை சொல், இருப்பினும்: ரீசெக்ச்ப்கள் சக்திவாய்ந்தவை, ஆனால் தவறாகப் புரிந்துகொள்வது மிகவும் எளிதானது. உங்கள் வெளிப்பாடுகள் நீங்கள் எதிர்பார்ப்பது போல நடந்து கொண்டதா என்பதைப் பார்க்க காலிபர் மிகச் சிறந்த சோதனை சாத்தியங்களை வழங்குகிறது. அவற்றை பயன்படுத்த. உங்களை காலில் சுட முயற்சி செய்யுங்கள். (கடவுளே, நான் அந்த வெளிப்பாட்டை விரும்புகிறேன் ...). ஆனால் நீங்கள், எச்சரிக்கை இருந்தபோதிலும், உங்கள் பாதத்தை (அல்லது வேறு ஏதேனும் உடல் பாகங்கள்) காயப்படுத்தினால், அதிலிருந்து கற்றுக்கொள்ள முயற்சி செய்யுங்கள்.

en: Quick reference
ta: விரைவான குறிப்பு

en: Credits
ta: வரவு

en: Thanks for helping with tips, corrections and such:
ta: உதவிக்குறிப்புகள், திருத்தங்கள் மற்றும் பலவற்றிற்கு உதவியதற்கு நன்றி:

en: kovidgoyal
ta: கோவிட்கோயல்

en: chaley
ta: சேலி

en: dwanthny
ta: டுவந்தி

en: Starson17
ta: ச்டார்சன் 17

en: Orpheu
ta: ஆர்ஃபியூ

en: For more about regexps see `The Python User Manual <https://docs.python.org/library/re.html>`_. The actual regular expression library used by calibre is: `regex <https://bitbucket.org/mrabarnett/mrab-regex/src/hg/>`_ which supports several useful enhancements over the Python standard library one.
ta: regexps பற்றி மேலும் அறிய `பைதான் பயனர் கையேடு <https://docs.python.org/library/re.html>` _ ஐப் பார்க்கவும். காலிபர் பயன்படுத்தும் உண்மையான வழக்கமான வெளிப்பாடு நூலகம்: `ரீசெக்ச் <https://bitbucket.org/mrabarnett/mrab-regex/src/hg/>` _ இது பைதான் நிலையான நூலகத்தில் பல பயனுள்ள மேம்பாடுகளை ஆதரிக்கிறது.
