【发布时间】:2012-05-29 21:38:40
【问题描述】:
假设我在以下格式的 ASCII 文件中有一行:
{text1} {stringA} {text2} {stringB} {text3}
其中{stringA} 和{stringB} 是感兴趣的子字符串。我们分别称它们为“A”和“B”。字符串 {text1}、{text2} 和 {text3} 是不包含 A 或 B 的任意长度(可能为空)的字符串。
我想在 Python 中做的只是交换 A 和 B 以使该行从
{text1} {stringA} {text2} {stringB} {text3}
到
{text1} {stringB} {text2} {stringA} {text3}
如果能提供任何帮助,我将不胜感激。我认为通过在这个问题上获得帮助,它将帮助我学习更好地使用 Python 中的正则表达式。
请注意,{text1}、{text2} 和 {text3} 是未知字符串。
我们确切地知道子字符串 A 和 B。我们知道 A 在该行中位于 B 之前。但是,我们不知道它们之前/之间/之后是什么(如果有的话)。
示例(A=John,B=Tim):
(1) 这个:
“我告诉约翰把袋子给蒂姆。”
改成这样:
“我告诉蒂姆把袋子给约翰。”
(2) 这个:
“约翰向蒂姆问好。”
改成这样:
“蒂姆向约翰问好。”
(3) 这个:
“约翰!h9aghagTim”
改成这样:
“蒂姆!h9aghagJohn”
【问题讨论】:
-
有什么方法可以识别字符串吗?你怎么知道这些字符串是你想要的?如果只是位置问题,那么 split() (或者最坏的情况是 csv 模块)就可以了。