使用 Python 程序进行不区分大小写的字符串替换

pythonserver side programmingprogramming更新于 2024/1/7 13:41:00

在本文中,我们将学习 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 属性来忽略字符串的大小写。


相关文章