使用 Python 程序进行不区分大小写的字符串替换
在本文中,我们将学习 Python 中的不区分大小写的字符串替换。
使用的方法
以下是完成此任务的各种方法 -
使用 re.IGNORECASE、re.escape()、re.sub()
使用 re.sub()、lambda、re.escape() 函数
使用 split()、lower() 和 replace() 函数
使用 split()、list() 和 join() 函数
方法 1:使用 re.IGNORECASE、re.escape()、re.sub()
re.compile() 函数
正则表达式pattern 可以与 pattern 对象组合,然后可用于模式匹配。此函数还允许再次搜索模式而无需重写它。
语法
re.compile(pattern, repl, string)
re.sub() 函数
替换值的字符串由 re.sub() 函数返回,该函数代表子字符串。使用此函数时,我们可以用列表替换多个元素。
语法
re.sub(pattern, repl, string, count=0, flags=0)
re.escape() 函数
此函数返回一个字符串,其中所有非字母数字都带有反斜杠。如果您想要匹配可能包含正则表达式元字符的任意文字字符串,可以使用此函数。
算法(步骤)
以下是执行所需任务需要遵循的算法/步骤 -
使用 import 关键字导入 re(regex) 模块。
创建一个变量来存储输入字符串。
打印输入字符串。
创建另一个变量来存储要替换的输入替换字符串。
初始化要替换的子字符串。
使用 compile()、escape() 和 IGNORECASE 属性忽略给定字符串的所有大小写(re.IGNORECASE 用于忽略
使用正则表达式 sub() 函数替换字符串,替换子字符串
打印不区分大小写的替换后的结果字符串。
示例
以下程序在使用 re.IGNORECASE、re.escape()、re.sub() 函数进行不区分大小写的字符串替换后返回字符串 –
# 导入 re(regex) 模块 import re # 输入字符串 inputString = "hello TuTorialsPOint python" # 打印输入字符串 print("输入字符串: ", inputString) # 输入要替换的替换字符串 replaceString = "java" # 要替换的子字符串 subString = "tutorialspoint" # 编译步骤,对所有情况转义单词 # re.IGNORECASE 用于忽略情况 compileObj = re.compile(re.escape(subString), re.IGNORECASE) # 使用正则表达式 sub() 函数替换字符串,替换子字符串 resultantStr = compileObj.sub(replaceString, inputString) # 打印替换后的结果字符串 print("替换后的结果字符串: ", resultantStr)
输出
执行时,上述程序将生成以下输出 –
输入字符串:hello TuTorialsPOint python 替换后的结果字符串:hello java python
方法 2:使用 re.sub()、lambda、re.escape() 函数
lambda 函数
lambda 函数是一个小型匿名函数。
lambda 函数可以有无限/任意数量的参数,但只能有一个表达式。
语法
lambda 参数:表达式
示例
以下程序在使用 re.sub()、lambda、re.escape() 函数进行不区分大小写的字符串替换后返回一个字符串–
# 导入 re(regex) 模块 import re # 输入字符串 inputString = "hello TuTorialsPOint python" # 打印输入字符串 print("输入字符串: ", inputString) # 输入要替换的替换字符串 replaceString = "java" # 要替换的子字符串 subString = "tutorialspoint" resultantStr = re.sub('(?i)'+re.escape(subString), lambda k: replaceString, inputString) print("替换后的结果字符串: ", resultantStr)
输出
执行时,上述程序将生成以下输出 –
输入字符串:hello TuTorialsPOint python 替换后的结果字符串:hello java python
方法 3:使用 split()、lower() 和 replace() 函数
split() − 将字符串拆分为列表。我们可以定义分隔符;默认分隔符是任何空格。
lower() − 将字符串中的所有大写字符转换为小写字符
replace() 函数 − 返回字符串的副本,该副本用另一个新子字符串替换所有出现的旧子字符串。
语法
string.replace(old, new, count)
示例
以下程序在使用 split()、lower() 和 replace() 函数进行不区分大小写的字符串替换后返回一个字符串 –
# 输入字符串 inputString = "hello TuTorialsPOint python" # 打印输入字符串 print("输入字符串: ", inputString) # 输入要替换的替换字符串 replaceString = "java" # 子字符串被替换 subString = "tutorialspoint" # 将输入字符串拆分为单词列表 wordsList = inputString.split() # 遍历单词列表的每个单词 for word in wordsList: # 检查当前单词是否等于给定的子字符串 # 通过使用 lower() 函数将它们转换为小写 if(word.lower() == subString.lower()): # 用输入的替换字符串替换当前单词 inputString = inputString.replace(word, replaceString) print("Resultant string after replacing: ", inputString)
输出
执行时,上述程序将生成以下输出 –
输入字符串:hello TuTorialsPOint python 替换后的结果字符串:hello java python
方法 4:使用 split()、list() 和 join() 函数
join() − join() 是 Python 中的字符串函数,用于连接由字符串分隔符分隔的序列元素。此函数连接序列元素以转换为字符串。
list() 函数(将序列/可迭代对象转换为列表)。
示例
以下程序在使用 split()、list() 和 join() 函数进行不区分大小写的字符串替换后返回字符串 –
# 输入字符串 inputString = "hello TuTorialsPOint python" # 打印输入字符串 print("输入字符串: ", inputString) # 输入要替换的替换字符串 replaceString = "java" # 要替换的子字符串 subString = "tutorialspoint" # 将输入字符串拆分为单词列表 wordsList = inputString.split() # 遍历 @@ 单词列表的索引和单词 for index, word in enumerate(wordsList): # 将当前单词转换为小写并检查 # 它是否等于子字符串 if word.lower() == subString: # 用给定的替换字符串替换该单词 wordsList[index] = replaceString # 将单词列表中的单词转换为字符串 resultantStr = " ".join([word for word in wordsList]) print("Resultant string after replacing: ", resultantStr)
输出
Input String: hello TuTorialsPOint python Resultant string after replacing: hello java python
结论
在本文中,我们学习了如何使用 4 种不同的方法不区分大小写地替换给定的字符串。此外,我们还学习了如何使用 regex 模块的 IGNORECASE 属性来忽略字符串的大小写。