सबटाइटल में रेगुलर एक्सप्रेशन से बदलें
या सबटाइटल टेक्स्ट पेस्ट करें
विकल्प
एक रेगुलर एक्सप्रेशन, जिसे हर क्यू के टेक्स्ट से मिलाया जाता है। हर मिलान बदला जाता है। इस भाग के दोनों पेज यही बॉक्स साझा करते हैं: एक इसे आपके मौजूदा पैटर्न के लिए खाली खोलता है, दूसरा ऐसे पैटर्न से शुरू करता है जिसे आप दोनों तरह से बदल सकें।
हर मिलान क्या बनेगा। हर मिलान हटाने के लिए इसे खाली छोड़ें। शाब्दिक खोज-बदल वाले पेज के उलट, यहाँ डॉलर चिह्न विशेष है: $1 मिलान के पहले कोष्ठक-समूह के लिए खड़ा है, $& पूरे मिलान के लिए, और $$ शाब्दिक डॉलर चिह्न के लिए।
वे अक्षर जिनके साथ पैटर्न संकलित होता है। g और u डिफ़ॉल्ट रूप से चालू हैं: u पैटर्न को टेक्स्ट को कोड इकाई के बजाय एक बार में एक अक्षर पढ़ने देता है, और यही \p{L} जैसी चीज़ों को उनका कहा हुआ अर्थ देता है। केस अनदेखा करने के लिए i जोड़ें, पंक्ति-एंकर के लिए m, और डॉट को पंक्ति-विराम से मिलाने देने के लिए s। बिना किसी फ़्लैग के संकलित करने के लिए बॉक्स साफ़ करें। कोई भी और अक्षर अनदेखा नहीं, अस्वीकार किया जाता है, क्योंकि जिन फ़्लैग के तहत आपने नहीं माँगा उनके तहत चलने वाला पैटर्न चुपचाप कुछ और अर्थ रखता है।
टाइमिंग किस फ़्रेम रेट में गिनी गई है। फ़ॉर्मैट पेजों पर यही MicroDVD को चाहिए, क्योंकि वह टाइमिंग फ़्रेम संख्याओं में रखता है। फ़्रेम रेट पेजों पर यह वह रेट है जिसके हिसाब से फ़ाइल की टाइमिंग की गई थी — वह संस्करण जिसके लिए सबटाइटल बने थे — और पेज का दूसरा बॉक्स उस वीडियो का रेट लेता है जिसके साथ आप इन्हें इस्तेमाल करेंगे। 23.976, 24, 25, 29.97, 30, 50, 59.94 और 60 आम हैं। गलत होने पर पूरी टाइमलाइन खिसक जाती है, और फ़्रेम रेट पेजों पर वह एक अनुपात से खिसकती है, तय मात्रा से नहीं।
चलाने के लिए पैटर्न भरें।
यह पेज सबटाइटल क्यू के अंदर के टेक्स्ट को आपके लिखे पैटर्न से दोबारा लिखता है। पैटर्न तय स्ट्रिंग नहीं है: “\d+” का मतलब अंकों का कोई भी क्रम, “(cat|dog)” का मतलब दोनों में से कोई शब्द, और बिंदु किसी भी अक्षर के लिए खड़ा होता है। हर क्यू में हर मिलान एक ही दौर में बदला जाता है, और पेज बताता है कि कितनी जगहें बदलीं। सिर्फ़ टेक्स्ट हिलता है — हर शुरू और अंत का समय जैसा था वैसा पार जाता है।
बदलाव का बॉक्स भी तय स्ट्रिंग नहीं है। उसमें dollar चिह्न ख़ास है: “$1” मिलान के पहले कोष्ठक समूह ने जो पकड़ा उसके लिए खड़ा होता है, “$&” पूरे मिलान के लिए, और “$$” सचमुच dollar चिह्न के लिए। यही एक नियम से हज़ारों अलग पंक्तियाँ सँभालने देता है — पूर्ण विराम से पहले की फ़ालतू जगह हटाना और विराम बचाना, क्योंकि विराम वही है जो समूह ने पकड़ा।
पैटर्न “g” और “u” के साथ चलते हैं। “g” का मतलब पहला मिलान नहीं, हर मिलान ढूँढ़ना; “u” पैटर्न को टेक्स्ट को code unit के बजाय अक्षर-दर-अक्षर पढ़ने देता है, और इसी से “\p{L}” का मतलब अक्षर होता है। केस नज़रअंदाज़ करने के लिए “i”, anchors को पंक्ति-दर-पंक्ति चलाने के लिए “m”, और बिंदु को पंक्ति विराम से मिलाने के लिए “s” जोड़ें। फ़्लैग बॉक्स ख़ाली करने पर कोई फ़्लैग नहीं चलता। कोई भी दूसरा अक्षर पूरे दौर को मना कर देता है, नज़रअंदाज़ नहीं होता, क्योंकि जिन फ़्लैग के लिए आपने नहीं कहा उनके नीचे चलने वाला पैटर्न चुपचाप कुछ और मतलब रखता है।
इनलाइन स्टाइलिंग तब साथ चलती है जब उसके बैठने की ईमानदार जगह बचे: बदलाव बाहर हो तो टैग खिसकता है और अंदर हो तो खिंचता है। जब मिलान टैग के किनारे को पार करता है तो मार्कअप हटा दिया जाता है और लॉस रिपोर्ट में गिना जाता है, क्योंकि विकल्प इटैलिक को गलत शब्दों के चारों ओर लपेटना होता। कुछ अपलोड नहीं होता, हर फ़ाइल अपने ही फ़ॉर्मैट में लिखी जाती है, और पूरा सीज़न एक बार में कतार से निकल सकता है।
उदाहरण
capture group से विराम बचाना
इनपुट
1
00:00:01,000 --> 00:00:02,000
We stopped , and waited .
2
00:00:03,000 --> 00:00:04,000
Right !
आउटपुट
1
00:00:01,000 --> 00:00:02,000
We stopped, and waited.
2
00:00:03,000 --> 00:00:04,000
Right!
पैटर्न जगहों का क्रम है जिसके बाद “.”, “,”, “!” या “?” में से एक आता है — और कोष्ठक उस विराम को पहला समूह बनाता है, इसलिए “$1” उसे वापस रखता है। तीन मिलान, तीन बदलाव। शाब्दिक खोज यह कभी नहीं कह सकती: वह एक तय स्ट्रिंग को दूसरी तय स्ट्रिंग में ही बदल सकती है।
एक पैटर्न, दोनों वर्तनियाँ
इनपुट
The Colour of the sky.
colourless and calm.
आउटपुट
The color of the sky.
colorless and calm.
फ़्लैग बॉक्स में “i” के साथ “colour” बड़े अक्षर वाली वर्तनी को भी पकड़ता है। ध्यान दें कि फ़्लैग क्या नहीं करता: पंक्ति खोलने वाला बड़ा अक्षर चला गया, क्योंकि पैटर्न को पता नहीं कि शब्द वाक्य में क्या कर रहा है। बड़ा अक्षर मायने रखे तो वह दूसरा नियम है।
इटैलिक सीमा को पार करता मिलान
इनपुट
1
00:00:01,000 --> 00:00:04,000
<i>Hello there</i>, welcome aboard
आउटपुट
1
00:00:01,000 --> 00:00:04,000
Hello there. Welcome aboard
मिलान इटैलिक के अंदर शुरू होकर बाहर ख़त्म होता है, इसलिए मार्कअप जो ढकता था उसका आधा गया और उसके लिए कोई सही जगह नहीं बची। उसे गलत अक्षरों के चारों ओर छोड़ने के बजाय हटाया और गिना जाता है।
अक्सर पूछे जाने वाले सवाल
पैटर्न के जिस हिस्से से मिला उसे कैसे बचाऊँ?
उस हिस्से के चारों ओर पैटर्न में कोष्ठक लगाएँ और बदलाव में “$1” से उसका ज़िक्र करें — दूसरे समूह के लिए “$2”। पैटर्न “\s+([.,!?])” और बदलाव “$1” जगह हटाकर विराम बचाता है, जो तय स्ट्रिंग का काम नहीं। “$&” पूरे मिलान के लिए और “$$” उस dollar चिह्न के लिए है जो आप सचमुच टेक्स्ट में चाहते हैं।
पैटर्न किन फ़्लैग के साथ चलता है?
“g” और “u” डिफ़ॉल्ट रूप से चालू हैं। “g” हर मिलान ढूँढ़ता है, पहले पर रुकता नहीं, और “u” पैटर्न को टेक्स्ट अक्षर-दर-अक्षर पढ़ने देता है, जिससे “\p{L}”, “\p{N}” और उनके जैसे अपना मतलब रखते हैं। “i” केस नज़रअंदाज़ करने के लिए, “m” anchors को पंक्ति-दर-पंक्ति चलाने के लिए, “s” बिंदु को पंक्ति विराम से मिलाने के लिए। बॉक्स ख़ाली करने पर कोई फ़्लैग नहीं चलता, और “x”, “y”, “d” जैसा कोई भी अनजाना अक्षर दौर मना कर देता है।
क्या यह find and replace पेज जैसा है?
नहीं, और फ़र्क़ वह है जो आप बॉक्स में टाइप करते हैं। वह पेज अक्षरों को जैसा लिखा गया वैसा मिलाता है, इसलिए वहाँ सिर्फ़ यह गलती हो सकती है कि कुछ न मिले। यह पेज एक प्रोग्राम चलाता है, जो एक ही दौर में हज़ारों जगहें मिलाकर सब दोबारा लिख सकता है। इसीलिए यहाँ पैटर्न ख़ाली शुरू होता है, अनजाने फ़्लैग मना किए जाते हैं, और दोनों पेज अलग हैं।
दो मिलान ओवरलैप हों तो क्या होता है?
सबसे बायाँ जीतता है और स्कैन उसके बाद चलता है, जो हर रेगुलर एक्सप्रेशन इंजन करता है। इसलिए “aa” पैटर्न “aaaa” पर तीन नहीं, दो मिलान पाता है, और बदलने के बाद टेक्स्ट “bb” होता है। अगर आपको तीन की उम्मीद थी तो पैटर्न कुछ ऐसा बता रहा है जो इंजन नहीं कर सकता, और यह फ़ाइल लौटने से पहले जान लेना बेहतर है।
क्या पेज धीमे पैटर्न से मेरी रक्षा करेगा?
एक तरह के पैटर्न को वह कुछ चलने से पहले मना कर देता है: ऐसे समूह पर दोहराव जो खुद बिना सीमा के दोहराता हो, जैसे “(a+)+” या “(\d+)+”। यही ब्राउज़र टैब जाम करने वाले पैटर्न हैं और तीस अक्षर का इनपुट काफ़ी है। तीन आकार नहीं पकड़े जाते: दोहराते समूह के अंदर दो ओवरलैप करते विकल्प, जैसे “(a|a)+”; कई ओवरलैप करते दोहराव साथ-साथ, जैसे “a*a*a*b”; और बहुत बड़ी गिनती, जैसे “(a{100}){100}”।
टेक्स्ट दोबारा लिखने पर इटैलिक और बाकी स्टाइलिंग का क्या होता है?
बदलाव के बाहर का टैग टेक्स्ट के साथ खिसकता है, और बदलाव को घेरने वाला टैग उसके हिसाब से खिंचता या सिकुड़ता है। जब मिलान टैग के किनारे को पार करता है तो मार्कअप के लिए सही जगह नहीं बचती, इसलिए वह हटा दिया जाता है और लॉस रिपोर्ट गिनती बताती है। काराओके टाइमिंग तब हटती है जब मिलान उसे छूता है, क्योंकि प्रति-अक्षर बँटवारा अब शब्दों से मेल नहीं खाता।
क्या इसे किसी भी सबटाइटल फ़ॉर्मैट पर इस्तेमाल कर सकते हैं?
हाँ। पैटर्न हर क्यू के टेक्स्ट पर लगाया जाता है, और बारहों फ़ॉर्मैट वह टेक्स्ट बाहर पढ़ते हैं, इसलिए SRT, WebVTT, स्टाइल वाली ASS, LRC गीत-पत्रक या सादा ट्रांसक्रिप्ट सब एक ही तरह चलते हैं। हर फ़ाइल जिस फ़ॉर्मैट में आई थी उसी में वापस लिखी जाती है, और MicroDVD फ़ाइल के फ़्रेम नंबर पैनल में दिए फ़्रेम रेट का इस्तेमाल करते हैं।