JYTHON 2.0 CODE -STRING MANIPULATION和替换

时间:2009-12-12 02:11:04

标签: replace jython text-manipulation

  

我已经问过这个问题了   后来我意识到这个工具   我写的是JYTHON CODES   目前支持2.1版本   因为解释器是2.1所以有些   先进的技术不起作用。

     

现在是一个新的,很兴奋的学习   更多在jython中,以便ican写更多   更好,更智能的代码。

     
      
  1. jython中的FOR LOOP比while循环更快:

  2.   
  3. 我有一个从XML文件中取出的长字符串,看起来像   这个

  4.         

    CDATA [EMP_ID]]

         

    我希望这是

         

    CDATA [TRIM(EMP_ID)]

         总之,只需添加TRIM()即可   栏目名称不断变化,

         

    做我曾经使用的一方   更换

         

    REPLACE('CDATA [TRIM(')

         

    我在寻找答案如何放置   无论任何数字,都要关闭   打开括号后的字符。

         

    我想如果我搜索的技术   对于IF SUB(LINE,1,52)=='CDATA ['   然后更换']]>' WITH   ')]] GT;>'解决我的需要。

         

    当我试图用STARTWITH搜索时   ,SUB它也给我其他字符串   因为它们匹配线的某些部分。

         

    简而言之我的问题

         
        
    1. 有没有简单的方法呢?

    2.   
    3. 如果正确,如何使用正确的搜索技术。

    4.         

      再次感谢大家,这个   论坛真的帮助了我很多   学习jython并纠正和   向我展示正确的方法。

           

      再次感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

在这种情况下,简单的正则表达式可能就足够了:

import re

f = open('your_file.xml')
try:
    xml = f.read()
    xml_with_trim = re.sub(r'(CDATA\[)([A-Z_]+)(\]\])', r'\1TRIM(\2)\3', xml)
    print xml_with_trim
finally:
    f.close()

使用'[A-Z_]+' regex匹配列名称,即一个或多个大写字母或'_'。请参阅re module的文档。