[在python中使用正则表达式搜索字符串子字符串

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[在python中使用正则表达式搜索字符串子字符串相关的知识,希望对你有一定的参考价值。

您好,我正在尝试搜索字符串的子字符串,如果找到,则返回“是”。

对于exp:我有字符串Deracu876,子字符串是D,d,e,E,r,R,A,a,c,C,u,U,8,7,6,所以结果是这里:

  • deracu876:是
  • Deracu8762:否
  • Dderacu876:是
  • sNdAp725:否

这是我使用正则表达式编写的代码,但无法正常工作

import re

def match(text,pattern):
    # regex 

    # searching pattern 
    if re.search(pattern,text,re.IGNORECASE): 
        return('Yes')
    else: 
        return('No') 

text=input()
pattern=""
for w in text :
    pattern=pattern+'|'+w
print(match("Deracu8762",pattern))
答案

您的for循环将|放在模式的开头,例如如果textabc,则图案为|a|b|c。这将匹配一个空字符串,该字符串是每个字符串的子字符串。

您可以简单地将[]包裹在字符周围,例如[deracu876]'。这与任何这些字符匹配。

您还需要制作另一种模式来拒绝text中没有的字符。您可以通过将字符放在[^]中来完成此操作,例如[^deracu876]

def match(text, substring):
    if re.search('[' + substring + ']', text, re.IGNORECASE) and not re.search('[^' + substring '], text, re.IGNORECASE):
        return "True"
    else:
        return "False"

text = input()
print(match("Deracu8762",text))

以上是关于[在python中使用正则表达式搜索字符串子字符串的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Python 结合正则表达式和字符串/文件操作在文本文件中搜索模式并存储模式的实例?

您可以使用 Python 正则表达式从偏移量向后搜索吗?

Python-正则表达式

Python爬虫编程思想(35):用正则表达式搜索替换和分隔字符串

python里使用正则表达式的后向搜索肯定模式

python里使用正则表达式的后向搜索肯定模式