Python 我宣布-->;str1=";bbccaa";。我希望结果都是b';s和a';s.i.e';bbaa&x27;,然而

Python 我宣布-->;str1=";bbccaa";。我希望结果都是b';s和a';s.i.e';bbaa&x27;,然而,python,regex,Python,Regex,我现在正在练习正则表达式。我声明-->str1=“bbccaa”。我希望结果是所有的b和a,即“bbaa”。我尝试了->“[^c]+”,[ab]+,但我尝试的每件事最终都以“bb”的形式输出。有人能告诉我哪里出了问题以及解决方法吗???试试这个: import re s = "bbccaa" print(re.sub("[^ab]+", r"", s)) #bbaa 既然我们在这里练习,另一个表达,而不是最好的一种,就是: ([ab]+)|(.+?) 我将使用re.findall进行此操作

我现在正在练习正则表达式。我声明-->
str1=“bbccaa”
。我希望结果是所有的b和a,即“bbaa”。我尝试了->“[^c]+”,[ab]+,但我尝试的每件事最终都以“bb”的形式输出。有人能告诉我哪里出了问题以及解决方法吗???

试试这个:

import re

s = "bbccaa"
print(re.sub("[^ab]+", r"", s))
#bbaa

既然我们在这里练习,另一个表达,而不是最好的一种,就是:

([ab]+)|(.+?)

我将使用
re.findall
进行此操作,然后按照以下方式加入
join
结果:

import re
str1="bbccaa"
output = ''.join(re.findall('a|b',str1))
print(output)
输出:

bbaa

我看不出单独使用
re
(不使用
join

s=s.replace('c','')
?你到底想做什么?或者用一个不匹配a或b的空字符串替换掉
[^ab]+
我声明了str1=“bbccaa”,我想要一个输出,它给出除“c”之外的所有内容的输出,即“bbaa”输出。我如何编写一个正则表达式来提供这个输出??我尝试使用-->[^c]+和[ab]+。但这些并没有给我想要的结果。他们只给了我“bb”。除了
cc
-
re.sub(cc,用这个替换,字符串到过程)
啊,谢谢。但是,在re.search或re.match中有没有一个表达式可以给我提供相同的输出?啊,谢谢。但是,在re.search或re.match中有没有一个表达式可以给我提供相同的输出?您需要使用
re.findall
返回多个匹配项…好的,明白了!非常感谢:)重新搜索([ab]+)|(.*),str1)'bb'一点建议,永远不要把
*?
作为正则表达式中的最后一个构造。它永远不会匹配一个角色。因此,组2将始终为NULL或空字符串。