如何用相同的替换替换不同的图案?
How to replace different patterns with the same replacement?
我正在尝试使用正则表达式替换多个项目,但没有得到预期的输出。
在下面的代码中,我需要将 phone 数字和单词 'hi' 替换为 "X"
txt = "Hi, my phone number is 089992654231. I am 24 years old."
def processString3(txt):
txt = re.sub('[0-9],Hi]', 'X', txt)
print(txt)
processString3(txt)
预期输出 - XX, my phone number is XXXXXXXXXX. I am 24 years old.
您可能会发现以下内容可以接受:
txt = "Hi, my phone number is 089992654231. I am 24 years old."
def processString3(txt):
txt = re.sub('[0-9]{5,}|Hi', lambda m: re.sub(r'.', 'X', m.group()), txt)
print(txt)
processString3(txt)
# XX, my phone number is XXXXXXXXXXXX. I am 24 years old.
以上逻辑将目标 phone 号码定义为连续 5 位或更多位数字。这将排除年龄,年龄不应超过 3 位数。
您的正则表达式格式错误,请尝试:
import re
def processString3(txt):
phone_number = re.search(r'(\d{5,})', txt)
greetings = re.search(r'(Hi)', txt)
if phone_number:
number_str = phone_number.group(1)
txt = txt.replace(number_str, 'X' * len(number_str))
if greetings:
greeting_str = greetings.group(1)
txt = txt.replace(greeting_str, 'X' * len(greeting_str))
print(txt)
if __name__ == '__main__':
txt = "Hi, my phone number is 089992654231. I am 24 years old."
processString3(txt)
这是一个临时解决方案,因为您没有准确指定要隐藏的字词。如果您提供更多详细信息,我可以 return 提供更有效的答案。
我正在尝试使用正则表达式替换多个项目,但没有得到预期的输出。 在下面的代码中,我需要将 phone 数字和单词 'hi' 替换为 "X"
txt = "Hi, my phone number is 089992654231. I am 24 years old."
def processString3(txt):
txt = re.sub('[0-9],Hi]', 'X', txt)
print(txt)
processString3(txt)
预期输出 - XX, my phone number is XXXXXXXXXX. I am 24 years old.
您可能会发现以下内容可以接受:
txt = "Hi, my phone number is 089992654231. I am 24 years old."
def processString3(txt):
txt = re.sub('[0-9]{5,}|Hi', lambda m: re.sub(r'.', 'X', m.group()), txt)
print(txt)
processString3(txt)
# XX, my phone number is XXXXXXXXXXXX. I am 24 years old.
以上逻辑将目标 phone 号码定义为连续 5 位或更多位数字。这将排除年龄,年龄不应超过 3 位数。
您的正则表达式格式错误,请尝试:
import re
def processString3(txt):
phone_number = re.search(r'(\d{5,})', txt)
greetings = re.search(r'(Hi)', txt)
if phone_number:
number_str = phone_number.group(1)
txt = txt.replace(number_str, 'X' * len(number_str))
if greetings:
greeting_str = greetings.group(1)
txt = txt.replace(greeting_str, 'X' * len(greeting_str))
print(txt)
if __name__ == '__main__':
txt = "Hi, my phone number is 089992654231. I am 24 years old."
processString3(txt)
这是一个临时解决方案,因为您没有准确指定要隐藏的字词。如果您提供更多详细信息,我可以 return 提供更有效的答案。