[ZDP] BackTalk to Document The Zope Book/Advanced Zope Scripting

nobody@nowhere.com nobody@nowhere.com
Tue, 09 Apr 2002 15:26:36 -0400


A comment to the paragraph below was recently added via http://www.zope.org/Documentation/ZopeBook/ScriptingZope.stx#3-68

---------------

      One common use for scripts is to do string processing. Python has a
      number of standard modules for string processing. You cannot do regular
      expression processing from Python-based Scripts, but you do have access
      to the *string* module. You have access to the *string* module from
      DTML as well, but it is much easier to use from Python. Suppose you
      want to change all the occurrences of a given word in a DTML
      Document. Here's a script, *replaceWord*, that accepts two arguments,
      *word* and *replacement*.  This will change all the occurrences of a
      given word in a DTML Document::

        ## Script (Python) "replaceWord"
        ##parameters=word, replacement
        ##
        """
        Replaces all the occurrences of a word with a
        replacement word in the source text of a DTML
        Document. Call this script on a DTML Document to use
        it. 

        Note: you'll need permission to edit a document to
        call this script on the document.
        """
        import string
        text=context.document_src()
        text=string.replace(text, word, replacement)
        context.manage_edit(text, context.title)

        % Anonymous User - Apr. 9, 2002 3:26 pm:
         Why no regular expressions? Perhaps this should be explained in greater detail. One can always use javascript
         if one needs regular expressions, but this is something that was quite surprising to me.