我想找到引号之间的单词并更改位置

I want to find the word between the quotes and change the position

我的计划是找到文中的bbb,提取两边引号括起来的词后重新定位

text = "'Banana' aaaaa'Tomato' aaaaa'Tomato' aaaaa'Watermelon' aaaaaa 'Apple'bbb 'Banana' aaaa 'Orange' aaaaaa 'Melon' aaaaaa 'Persimmon' aaaaaaa 'Grape'bbb 'Apple' aaaaaa 'Grape' aaaaa'Tomato' aaaaa 'avocado' aaaaa 'watermelon' aaaaa 'apple'bbb 'mango' aaaa' orange' aaaaaa 'melon' aaaaaa 'persimmon' aaaaaaa 'plum' bbb 'tangerine' aaaaaa..."

例如提取物'Apple'bbb 'Banana', 'Grape'bbb 'Apple', 'apple'bbb 'mango', 'plum' bbb 'tangerine' 并将顺序更改为 'Banana'bbb 'Apple'、'Apple'bbb 'Grape'、'mango'bbb 'apple '、'tangerine' bbb 'plum'

就是修改后修改文字。所以最后

text = "'Banana' aaaaa'Tomato' aaaaa'Tomato' aaaaa'Watermelon' aaaaaa 'Banana'bbb 'Apple' aaaa 'Orange' aaaaaa 'Melon' aaaaaa 'Persimmon' aaaaaaa 'Apple'bbb 'Grape' aaaaaa 'Grape' aaaaa'Tomato' aaaaa 'avocado' aaaaa 'watermelon' aaaaa 'mango'bbb 'apple' aaaa' orange' aaaaaa 'melon' aaaaaa 'persimmon' aaaaaaa 'tangerine' bbb 'plum' aaaaaa..."

就是要弄成这样。到目前为止我所做的是

text = "'Banana' aaaaa'Tomato' aaaaa'Tomato' aaaaa'Watermelon' aaaaaa 'Apple'bbb 'Banana' aaaa 'Orange' aaaaaa 'Melon' aaaaaa 'Persimmon' aaaaaaa 'Grape'bbb 'Apple' aaaaaa 'Grape' aaaaa'Tomato' aaaaa 'avocado' aaaaa 'watermelon' aaaaa 'apple'bbb 'mango' aaaa' orange' aaaaaa 'melon' aaaaaa 'persimmon' aaaaaaa 'plum' bbb 'tangerine' aaaaaa..."

p = re.compile(r"'(\S+\s*\S+\s*)bbb\s*'(\S+)'")
string = p.findall(text)

print(string)

a = list(string[0])
a.reverse()

b = list(string[1])
b.reverse()

print(a)
print(b)

我什至提取并更改了顺序,但我真的不知道如何替换它。

您需要使用 re.sub 来实现此目的。您还需要使用 等等。像这样

re.sub(r"('\S*\s*\S+\s*')(bbb\s*)('\S+')", r"  ", text)

</code> 等是您的正则表达式的匹配项,如括号所示。 <code>re.sub的第二个参数将构造结果。