使用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()函数
正则表达式模式可以与模式对象组合,然后用于模式匹配。此函数还允许在不重写的情况下再次搜索模式。
语法
re.compile(pattern, repl, string)
re.sub()函数
re.sub()函数返回带有替换值的字符串,它代表子字符串。当我们使用此函数时,我们可以用列表替换多个元素。
语法
re.sub(pattern, repl, string, count=0, flags=0)
re.escape()函数
此函数返回一个字符串,其中所有非字母数字字符都被反斜杠转义。如果您想匹配可能包含正则表达式元字符的任意字面字符串,可以使用此函数。
算法(步骤)
以下是执行所需任务的算法/步骤:
使用import关键字导入re(正则表达式)模块。
创建一个变量来存储输入字符串。
打印输入字符串。
创建另一个变量来存储要替换的输入替换字符串。
初始化要替换的子字符串。
使用compile()、escape()和IGNORECASE属性忽略给定字符串的所有大小写(re.IGNORECASE用于忽略大小写)。
使用正则表达式sub()函数用替换字符串替换子字符串。
打印不区分大小写替换后的结果字符串。
示例
以下程序使用re.IGNORECASE、re.escape()、re.sub()函数返回不区分大小写字符串替换后的字符串:
# importing re(regex) module import re # input string inputString = "hello TuTorialsPOint python" # printing input string print("Input String: ", inputString) # input replace string to be replaced with replaceString = "java" # substring to be replaced subString = "tutorialspoint" # compilation step to escape the word for all cases # the re.IGNORECASE is used to ignore cases compileObj = re.compile(re.escape(subString), re.IGNORECASE) #Substitute the substring with replacing a string using the regex sub() function resultantStr = compileObj.sub(replaceString, inputString) # printing resultant string after replacing print("Resultant string after replacing: ", resultantStr)
输出
执行上述程序后,将生成以下输出:
Input String: hello TuTorialsPOint python Resultant string after replacing: hello java python
方法2:使用re.sub()、lambda、re.escape()函数
lambda函数
lambda函数是一个小的匿名函数。
lambda函数可以有无限/任意数量的参数,但只有一个表达式。
语法
lambda arguments : expression
示例
以下程序使用re.sub()、lambda、re.escape()函数返回不区分大小写字符串替换后的字符串:
# importing re(regex) module import re # input string inputString = "hello TuTorialsPOint python" # printing input string print("Input String: ", inputString) # input replace string to be replaced with replaceString = "java" # substring to be replaced subString = "tutorialspoint" resultantStr = re.sub('(?i)'+re.escape(subString), lambda k: replaceString, inputString) print("Resultant string after replacing: ", resultantStr)
输出
执行上述程序后,将生成以下输出:
Input String: hello TuTorialsPOint python Resultant string after replacing: hello java python
方法3:使用split()、lower()和replace()函数
split() - 将字符串拆分为列表。我们可以定义分隔符;默认分隔符是任何空格。
lower() - 将字符串中所有大写字符转换为小写字符。
replace()函数 - 返回字符串的副本,将所有出现的旧子字符串替换为另一个新的子字符串。
语法
string.replace(old, new, count)
示例
以下程序使用split()、lower()和replace()函数返回不区分大小写字符串替换后的字符串:
# input string inputString = "hello TuTorialsPOint python" # printing input string print("Input String: ", inputString) # input replace string to be replaced with replaceString = "java" # substring to be replaced subString = "tutorialspoint" # splitting input string into a list of words wordsList = inputString.split() # traversing through each word of words list for word in wordsList: # checking whether the current word is equal to the given substring # by converting them into lowercase using the lower() function if(word.lower() == subString.lower()): # replacing current word with the input replace string inputString = inputString.replace(word, replaceString) print("Resultant string after replacing: ", inputString)
输出
执行上述程序后,将生成以下输出:
Input String: hello TuTorialsPOint python Resultant string after replacing: hello java python
方法4:使用split()、list()和join()函数
join() - join()是Python中的一个字符串函数,用于连接由字符串分隔符分隔的序列元素。此函数连接序列元素以转换为字符串。
list() 函数(将序列/可迭代对象转换为列表)。
示例
以下程序使用split()、list()和join()函数返回不区分大小写字符串替换后的字符串:
# input string inputString = "hello TuTorialsPOint python" # printing input string print("Input String: ", inputString) # input replace string to be replaced with replaceString = "java" # substring to be replaced subString = "tutorialspoint" # splitting input string into a list of words wordsList = inputString.split() # traversing through index and word of @@ words list for index, word in enumerate(wordsList): # converting current word into lowercase and checking # whether it is equal to substring if word.lower() == subString: # replacing that word with the given replace string wordsList[index] = replaceString # converting words of wordlist into a string 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种不同的方法来不区分大小写地替换给定的字符串。此外,我们还学习了如何使用正则表达式模块的IGNORECASE属性来忽略字符串的大小写。