如何在re.IGNORECASE条件下替换字符串中的字符


sentence = 'this is a book.pdf'
sentence.replace( 'pdf' or 'PDF' ,'csv' )
sentence.replace('pdf','csv',re.IGNORECASE)

在条件下我如何替换字符

  • 指定,如Pdf或Pdf
  • 或忽略所有案例

看起来好像要截断找到的任何文件扩展名并添加.csv。我建议使用w{1,5}(一到五个单词的字符(而不是w+(一个或多个(,因为我经常在自己的文件Blob中使用名为an12n512n5125.1125n125n125的文件。

匹配字符串($(末尾一个或多个字母数字字符后的句点,并替换为.csv。区分大小写不再重要:

import re
sentence = 'this is a book.pdf'
ext2 = 'csv'
sentence = re.sub(rf'.w+$', f'.{ext2}', sentence)

切片字符串的末尾,小写将其与.pdf进行比较,并将.pdf替换为.csv。使用字符串插值(f"(进行自定义扩展

sentence = 'this is a book.pdf'
ext1 = 'pdf'
ext2 = 'csv'
sentence = sentence[:-4]+f'.{ext2}' if sentence[-4:].lower()==f'.{ext1}' else sentence

使用带有$的regex来匹配带有re.IGNORECASE的字符串结尾。使用字符串插值进行自定义扩展

import re
sentence = 'this is a book.pdf'
ext1 = 'pdf'
ext2 = 'csv'
sentence = re.sub(rf'.{ext1}$', f'.{ext2}', sentence, flags=re.IGNORECASE)

如果您对多种类型的文件执行此操作,则可以找到句点(.(的索引,删除其后的所有内容,并将文件扩展名添加到末尾

sentence = sentence - sentence[sentence.index(".")+1:]
sentence += "csv"

我假设您正在对字符串执行此操作

sentence = sentence.lower()

更好的是,在没有更多上下文的情况下,只在sentence.lower()中使用下一个句子可能会很难说出。

最新更新