正如我已经问过这个问题并且我后来意识到我正在为其编写 JYTHON CODES 的工具目前支持到 2.1 版本,因为解释器是 2.1,所以一些高级技术不起作用。
现在是一个新人,很高兴能在 jython 中学习更多内容,这样我就可以编写更多更好、更智能的代码。
jython 中的 FOR LOOP 是否比 while 循环快:
我有一个长字符串取自一个看起来像这样的 XML 文件
CDATA[EMP_ID]]
我希望这是
CDATA[修剪(EMP_ID)]
简而言之,只需在不断变化的 COLUMN NAME 周围添加 TRIM() ,
做我用过的那一面
替换('CDATA [修剪(')
我正在寻找如何放置右括号的答案,而不管左括号后有多少个字符。
我认为如果我搜索 IF SUB (LINE,1,52 )=='CDATA[ ' AND THEN REPLACE ']]>' WITH ')]]>>' 解决我的需求的技术。
当我尝试使用 STARTWITH 进行搜索时,SUB 它也会让我获得其他字符串,因为它们与该行的某些部分匹配。
总之我的问题
有简单的方法吗?
如果我是对的,如何使用正确的搜索技术。
再次感谢大家,这个论坛在学习 jython 以及纠正和向我展示正确方法方面确实帮助了我很多。
再次感谢你的帮助。
问问题
929 次
1 回答
0
A simple regular expression might be sufficient in this case:
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()
The column name is matched using '[A-Z_]+' regex
i.e., one or more capital letters or '_'
. See documentation for the re module.
于 2009-12-12T08:33:55.827 回答