सबसे हाल ही के पाठ के लिए AppleScript टेक्स्ट डेलिमिटर


0

मेरे पास फ़ाइल पर बहुत सारे पाठ हैं My_Note_Backup.txt

हर बार जब मैं एक और स्क्रिप्ट चलाता हूं, तो इस पाठ में कुछ इस तरह से जोड़ा जाता है

demo
demo
{
demo demo demo
demo
}
demo ...

और यह दिन में लगभग 60 बार दोहराता है।

मेरे पास एक AppleScript कैसे हो सकता है जो केवल {और} के बीच के अंतिम नोट को कॉपी करता हो

मेरे पास यहां पाठ परिसीमन है, लेकिन मैं केवल सबसे हाल का पाठ कैसे प्राप्त कर सकता हूं?

set theName to ""
set theName to the clipboard

set theText to Unicode text
set theSource to theName
property leftEdge1 : "{"
property rightEdge2 : "}"
try
    set saveTID to text item delimiters
    set text item delimiters to leftEdge1
    set classValue to text item 2 of theSource
    set text item delimiters to rightEdge2
    set theName to text item 1 of classValue
    set text item delimiters to saveTID
    theName
end try
set the clipboard to theName

पाठ फ़ाइल है

set dataBackupFile to (path to desktop folder as text) & "My_Note_Backup.txt"

जवाबों:


1

एक रहे हैं विकल्पों की संख्या Apple स्क्रिप्ट में एक regex खोज, जो शायद आप जो खोज रहे हैं ऐसा करने के लिए सबसे आसान तरीका है चलाने के लिए आप को सक्षम करने के। नीचे दिए गए कोड को Satimage का उपयोग करके लिखा गया है , लेकिन आप उसी रेगेक्स स्ट्रिंग के साथ अन्य विकल्पों में से किसी का भी उपयोग कर सकते हैं।

set regexStr to "(?<={\n)[^{}]*(?=\n}[^}]*\Z)"
find text regexStr in dataBackupFile with regexp and string result

आपके द्वारा दिए गए पाठ को देखते हुए, यह वापस आ जाएगा:

demo demo demo
demo demo

पूर्णता के लिए, मैं सिर्फ रेगेक्स को तोड़ दूंगा:

(?<={\n)[^{}]*(?=\n}[^}]*\Z)
(?<={\n)                     - makes sure the match is immediately preceded by {\n
        [^{}]*               - matches as many non-brackets as it can (your string)
              (?=\n}[^}]*\Z) - makes sure the match is immediately followed by a
                               close bracket, with no more brackets between it and
                               the end of the file

संपादित करें: मैंने अभी देखा कि आपके द्वारा पोस्ट किए जाने के बाद से आपका उदाहरण टेक्स्ट किसी और द्वारा संपादित किया गया है। यदि आप वास्तव में इसका मतलब है कि यह रिक्त स्थान से अलग एक लाइन पर है, तो आपको \nएस को रिक्त स्थान से बदलना चाहिए ।


यह अच्छा लग रहा है दुर्भाग्य से मेरे कुछ साथियों ने प्रोफाइल को प्रबंधित किया है और किसी भी एक्सटेंशन को स्थापित करने में सक्षम नहीं होंगे
केविन

@ केविनकोर्क क्या?
टिमोथी मुलर-हार्डर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.