Python 如何对findall()函数返回的列表运行sub()函数?
我正在尝试替换字符串中的文本。首先我必须使用findall()收集几个不同的事件,然后我必须用一个特定的字符串替换它们 问题是:Python 如何对findall()函数返回的列表运行sub()函数?,python,Python,我正在尝试替换字符串中的文本。首先我必须使用findall()收集几个不同的事件,然后我必须用一个特定的字符串替换它们 问题是: 编写一个正则表达式,用于查找以下所有情况: A.正则表达式 B正则表达式 C正则表达式 D正则表达式 搜索字符串 将正则表达式赋给名为pattern的变量 使用重新包中的sub()方法将所有出现的“pattern”替换为“substitution” 将sub()方法的结果赋给名为replace_result的变量 输出到控制台replace_结果 这是我的密码: im
import re
search_string = '''This is a string to search for a regular expression
like regular expression or regular-expression or regular:expression or
regular&expression'''
pattern = re.findall('regular.expression', search_string)
substitution = 'regular expression'
replace_results = re.sub('regular.expression', 'regular expression',
search_string)
print(replace_results)
所以我知道findall结果返回一个列表,这导致TypeError:unhabable type:'list'。我可以将sub与“regular.expression”一起使用,但这并不能真正解决问题。正确的方法是什么?问题根本不要求您使用
re.findall
。您应该改为使用re.sub
搜索模式,并将匹配项替换为substitution
:
import re
search_string = 'This is a string to search for a regular expression like regular expression or regular-expression or regular:expression or regular&expression'
pattern = 'regular[ -:^]expression'
substitution = 'substitution'
replace_result = re.sub(pattern, substitution, search_string)
print(replace_result)
这将产生:
This is a string to search for a substitution like substitution or substitution or substitution or substitution
重新导入
#搜索正则表达式出现的字符串(提供给学员)
search_string=''这是一个用于搜索正则表达式(如正则表达式或正则表达式)的字符串
正则表达式或正则表达式:表达式或正则表达式(&R)“”
#1.编写一个正则表达式,用于查找以下所有情况:
#a。正则表达式
#b。正则表达式
#c。正则表达式
#d。正则表达式
#搜索字符串
text=re.compile(r'regular.\w+'))
##2. 将正则表达式赋给名为pattern的变量
模式=文本
#用于替换的字符串(提供给学生)
替换=“正则表达式”
#3.使用重新包中的sub()方法将所有出现的“pattern”替换为“substitution”
result=re.sub(模式、替换、搜索字符串)
#4.将sub()方法的结果赋给名为replace_result的变量
替换结果=结果
#5.输出到控制台的替换结果
打印(replace_result)
一个循环,遍历findall
中的所有匹配项?我不完全确定您在问什么,但请注意re.sub
的替换参数可以调用-请参阅。