Replace JYTHON 2.0代码-字符串操作和替换
我已经问过这个问题了 我后来意识到了这个工具 我在为之写JYTHON代码 目前支持直到2.1版本 由于intepreter为2.1,因此 先进的技术不起作用 现在是一个新的和兴奋的学习 更多关于jython的内容,以便我能写更多 更好、更智能的代码 jython中的FOR循环比while循环快: 我从一个XML文件中提取了一个长字符串,看起来像 这个 CDATA[EMP\U ID]] 我希望这样 CDATA[TRIMEMP\U ID] 简言之,只需在周围添加修剪 不断变化的列名 做我用过的那一面 替换 替换“CDATA[TRIM” 我正在寻找答案,想知道如何把 不考虑任何数字的右括号 打开括号后的字符数 我认为如果我搜索 对于IF子行,1,52=='CDATA[' 然后将“]]>”替换为 “]]>>”解决我的需要 当我试图用STARTWITH搜索时 ,它也给了我其他的字符串 因为它们与线路的某些部分相匹配 简言之,我的问题 有没有简单的方法 如果我是对的,如何使用正确的搜索技术 再次感谢你们所有人,这个 论坛真的帮了我很多忙 学习jython,纠正和纠正错误 告诉我正确的方法 再次感谢你的帮助Replace JYTHON 2.0代码-字符串操作和替换,replace,jython,text-manipulation,Replace,Jython,Text Manipulation,我已经问过这个问题了 我后来意识到了这个工具 我在为之写JYTHON代码 目前支持直到2.1版本 由于intepreter为2.1,因此 先进的技术不起作用 现在是一个新的和兴奋的学习 更多关于jython的内容,以便我能写更多 更好、更智能的代码 jython中的FOR循环比while循环快: 我从一个XML文件中提取了一个长字符串,看起来像 这个 CDATA[EMP\U ID]] 我希望这样 CDATA[TRIMEMP\U ID] 简言之,只需在周围添加修剪 不断变化的列名 做我用过的那一面
在这种情况下,一个简单的正则表达式就足够了:
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_]”正则表达式匹配,即一个或多个大写字母或“_”。参见文档。我不知道为什么,但这不起作用,它仍然显示相同的结果,没有添加修剪,我使用了与上面所示相同的代码。任何其他方式。谢谢你的帮助