काफी कोशिश के बाद मैं सटीक RegExp बनाने में सफल हुआ।
Find: (;\s{1})(\[\[)(\w+\s{0,1}\w+)(\]\])Replace: $1$2:en:$3|$3$4फाइण्ड में:-
पहली कोष्ठक मैच करती है कि सिर्फ वही शब्द बदलें जो कि लाइन के शुरु में थे (लाइन के शुरु वाले शब्द सेमीकॉलन तथा एक स्पेस (
; ) के साथ शुरु हो रहे थे) मुझे सिर्फ लाइन के शुरु में दिये शब्द (जिनका सूची बारे लेख है) ही रिप्लेस करने थे, बीच वाली कड़ियाँ तो हिन्दी में ही अनुवाद होनी थी।
दूसरी कोष्ठक विकि कड़ी की ओपनिंग स्क्वैयर ब्रैकेट्स मैच करती है।
तीसरी कोष्टक में
\w+ एक या अधिक करैक्टर (शब्द),
\s{0,1} जीरो या एक स्पेस (यदि दो शब्द हों यानि बीच में एक स्पेस हुआ) तथा
\w+ फिर से एक या अधिक करैक्टर (शब्द) मैच करती है।
चौथी कोष्ठक क्लोजिंग स्क्वैयर ब्रैकेट मैच करती है।
रिप्लेस में:-
$1 पहली ब्रैकेट का मामला यानि सेमीकॉलन व एक स्पेस डालता है,
$2 दूसरी कोष्ठक यानि ओपनिंग ब्रैकेट्स लगाता है फिर
:en: फिर
$3 तीसरी कोष्ठक से वाँछित शब्द फिर
पाइप साइन, उसके बाद
$3 दोबारा वही शब्द तथा अन्त में
$4 चौथी कोष्ठक यानि क्लोजिंग ब्रैकेट्स लगाता है।
तो इस प्रकार
; [[juggernot]] -->
; [[:en:juggernot|juggernot]] में बदल जाता है।
बीच का स्पेस \s{0,1} सुनिश्चित करता है कि दो शब्द वाले (बीच में स्पेस) वाले भी बदलें।
जैसे:
; [[Hare Krishna]] -->
; [[:en:Hare Krishna|Hare Krishna]]
इसके बाद ऐसे शब्द रह गये थे जिनमें बीच में पाइप साइन पहले से था (यानि जिनका लिंक टैक्स्ट लिंक टार्गेट से अलग था) जैसे:
[[Beedi|Bidi]]
तो ऐसे शब्दों के लिये बाद में निम्न RegExp लगाया।
Find: (;\s{1})(\[\[)(\w+\s{0,1}\w+\|\w+\s{0,1}\w+)(\]\])Replace: $1$2:en:$3$4फाइण्ड में:-
पहली कोष्ठक और
दूसरी कोष्ठक ऊपर की तरह ही मैच करती है।
तीसरी कोष्टक में
\w+ ऊपर की तरह पहला (शब्द),
\s{0,1} स्पेस
(यदि हुआ तो) तथा
\w+ दूसरा शब्द (यदि हुआ) मैच करता है। यहाँ तक पाइप साइन से पहले वाला हिस्सा मिलाया। फिर
\| पाइप साइन मैच करता है, पाइप साइन के बाद दूसरे शब्द (या शब्दों) के लिये फिर पाइप साइन से पहले जैसा ही सिण्टैक्स।
चौथी कोष्ठक ऊपर की तरह क्लोजिंग स्क्वैयर ब्रैकेट मैच करती है।
रिप्लेस में:-
$1 पहली ब्रैकेट का मामला यानि सेमीकॉलन व एक स्पेस डालता है,
$2 दूसरी कोष्ठक यानि ओपनिंग ब्रैकेट्स लगाता है फिर
:en: फिर
$3 तीसरी कोष्ठक से वाँछित शब्द (शब्दों) तथा
$4 चौथी कोष्ठक यानि क्लोजिंग ब्रैकेट्स लगाता है।
तो इस प्रकार
; [[Beedi|Bidi]] -->
; [[:en:Beedi|Bidi]] बन जाता है।
कुल मिलाकर एक सिण्टैक्स बनाने में देर तो लगी पर फिर सब काम दो क्लिक में हो गया।
लेकिन अफसोस की बात ये है कि FoxReplace यूनिकोड हिन्दी के साथ काम नहीं करता।