Jython 如何去除字符串中的字符

0 投票
2 回答
1241 浏览
提问于 2025-04-17 22:09

这是一个关于WebSphere的问题。

我想把这个命令变成变量。

AdminConfig.modify('(cells/taspmociias204Cell01/clusters/cam_group|resources.xml#J2EEResourceProperty_1324400045826)'

我发现这个命令:

AdminConfig.list('J2EEResourceProperty', 'URL*cam_group*)').splitlines()

会返回:

['URL(cells/taspmociias204Cell01/clusters/cam_group|resources.xml#J2EEResourceProperty_1324400045826)', 'URL(cells/taspmociias204Cell01/clusters/cam_group|resources.xml#J2EEResourceProperty_1355156316906)']

所以我把这个命令变成了一个变量:

j2ee = AdminConfig.list('J2EEResourceProperty', 'URL*cam_group*)').splitlines()

现在我可以通过输入“j2ee[0]”来得到我想要的字符串,结果是:

'URL(cells/taspmociias204Cell01/clusters/cam_group|resources.xml#J2EEResourceProperty_1324400045826)'

这正是我想要的,除了前面多了个网址的部分。我该怎么去掉那些字符呢?

2 个回答

0

你可以使用一个简单的替换正则表达式来提取出网址部分。

比如说:

import re
mystr = 'URL(blahblahblah)'
re.sub(r'^URL', "", mystr)

这是一个很实用的工具,可以帮助你学习和测试你的正则表达式,确保它们是正确的。http://gskinner.com/RegExr/

1

我不太确定我是否理解了你的需求,但看起来你想要修改一些J2EEResourceProperty对象的属性。

如果是这样的话,其实你不需要去删除那个“URL”字符串,实际上你不应该这么做。这个字符串 'URL(cells/taspmociias204Cell01/clusters/cam_group|resources.xml#J2EEResourceProperty_1324400045826)' 完全可以用来识别WebSphere的配置对象。你可以试试这个:

AdminConfig.modify('URL(cells/taspmociias204Cell01/clusters/cam_group|resources.xml#J2EEResourceProperty_1324400045826)', [['value', 'the new value'], ['description', 'the new description']])

顺便说一下,你也可以尝试使用WDR库(https://github.com/WDR/wdr/)。这样你的脚本看起来会是这样的:

prop = listConfigObjects('J2EEResourceProperty')[0]
prop.value = 'the new value'
prop.description = 'the new description'

声明:我是WDR的贡献者之一。

撰写回答