Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用正则表达式的字符串替换_Python_Regex - Fatal编程技术网

Python 使用正则表达式的字符串替换

Python 使用正则表达式的字符串替换,python,regex,Python,Regex,我用python编写了这个字符串 a = "haha" result = "hh" 我想要实现的是使用正则表达式将所有出现的“aha”替换为“h”,将所有出现的“oho”替换为“h”,将所有出现的“ehe”替换为“h” “h”只是一个例子。基本上,我想保留中心人物。换句话说,如果是“eae”,我希望它改为“a” 我的正则表达式就是这个 "aha|oho|ehe" 我想过这样做 import re reg = re.compile('aha|oho|ehe') 然而,我一直在思考如何在不使

我用python编写了这个字符串

a = "haha" 
result = "hh"
我想要实现的是使用正则表达式将所有出现的“aha”替换为“h”,将所有出现的“oho”替换为“h”,将所有出现的“ehe”替换为“h”

“h”只是一个例子。基本上,我想保留中心人物。换句话说,如果是“eae”,我希望它改为“a”

我的正则表达式就是这个

"aha|oho|ehe"
我想过这样做

import re
reg = re.compile('aha|oho|ehe')
然而,我一直在思考如何在不使用循环迭代所有可能的组合的情况下实现这种替换?

关于
re.sub(r'[aeo]h[aeo]','h',a)

关于
re.sub(r'[aeo]h[aeo]','h',a)
你可以使用:

您可以使用:


使用reg.sub()方法使用reg.sub()方法这还将替换诸如“aho”和“eha”之类的字符串。这可以替换诸如
aho
之类的其他模式。在这种情况下,您可能希望使用反向引用,即
re.sub(r'([aeo])h\1',h',s)
我更新了我的问题,将其替换为一个任意字符,这也将替换诸如“aho”和“eha”之类的字符串。这可以替换其他模式,例如
aho
。在这种情况下,您可能希望使用反向引用,即
re.sub(r'([aeo])h\1',h',s)
我更新了我的问题,将其替换为任意字符
import re

print re.sub('aha|oho|ehe', 'h', 'haha')  # hh
print re.sub('aha|oho|ehe', 'h', 'hoho')  # hh
print re.sub('aha|oho|ehe', 'h', 'hehe')  # hh
print re.sub('aha|oho|ehe', 'h', 'hehehahoho')  # hhhahh