使用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属性来忽略字符串的大小写。

更新于:2023年1月27日

4K+ 次查看

启动您的职业生涯

完成课程获得认证

开始学习
广告