0

正如我已经问过这个问题并且我后来意识到我正在为其编写 JYTHON CODES 的工具目前支持到 2.1 版本,因为解释器是 2.1,所以一些高级技术不起作用。

现在是一个新人,很高兴能在 jython 中学习更多内容,这样我就可以编写更多更好、更智能的代码。

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

  2. 我有一个长字符串取自一个看起来像这样的 XML 文件

CDATA[EMP_ID]]

我希望这是

CDATA[修剪(EMP_ID)]

简而言之,只需在不断变化的 COLUMN NAME 周围添加 TRIM() ,

做我用过的那一面

替换('CDATA [修剪(')

我正在寻找如何放置右括号的答案,而不管左括号后有多少个字符。

我认为如果我搜索 IF SUB (LINE,1,52 )=='CDATA[ ' AND THEN REPLACE ']]>' WITH ')]]>>' 解决我的需求的技术。

当我尝试使用 STARTWITH 进行搜索时,SUB 它也会让我获得其他字符串,因为它们与该行的某些部分匹配。

总之我的问题

  1. 有简单的方法吗?

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

再次感谢大家,这个论坛在学习 jython 以及纠正和向我展示正确方法方面确实帮助了我很多。

再次感谢你的帮助。

4

1 回答 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 回答