Python 检查字符串中是否有不可预测的分隔符
我正在寻找比在“check for word”中只检查Python 检查字符串中是否有不可预测的分隔符,python,python-3.x,fuzzy-search,Python,Python 3.x,Fuzzy Search,我正在寻找比在“check for word”中只检查if“word”更可靠的不可预测字符串 举个例子,假设我有以下句子: "Learning Python!" 如果句子包含“Python”,我想计算为true,但如果是: "Learning #python!" 使用空格作为分隔符进行拆分会给我带来与python不匹配的[“learning”,“#python”] (注意:虽然我确实理解我可以删除这个特殊情况下的,但问题是1.我正在标记编程语言,不想去
if“word”更可靠的不可预测字符串
举个例子,假设我有以下句子:
"Learning Python!"
如果句子包含“Python”,我想计算为true,但如果是:
"Learning #python!"
使用空格作为分隔符进行拆分会给我带来与python不匹配的[“learning”,“#python”]
(注意:虽然我确实理解我可以删除这个特殊情况下的
,但问题是1.我正在标记编程语言,不想去掉
中的
,2.这只是一个示例,我可以通过很多不同的方式看到人类键入的标题,包括这些提示。)这是我仍然想抓住的。)
基本上,我想检查一下,我正在寻找的字符序列是否存在,尽管他们可能会以任何奇怪的方式提到它。有哪些方法可以做到这一点?我已经看过一些模糊搜索,但我没有看到任何查找单个词的使用案例
这里的最终目标是,我有编程语言的标签,我想在人们的流标题的标题和标签的语言,如果它在标题中提到。这段代码打印True
如果这个词包含“python”,忽略大小写
重新导入
input=“学习Python!”
print(re.search(“python”,input,re.IGNORECASE)不是None)
这不是一个简单的正则表达式问题吗?我的意思是,正则表达式不符合你的要求吗?@Sraw是的,看起来是这样,但正则表达式是一个巨大的弱点,我需要了解更多,因为我只真正使用它进行验证,而不是字符串匹配,所以我忘记了它的功能。只是指出,提取特定单词用法的含义是一个超级复杂的过程总的来说,这是一个很难解决的问题,特别是在出现口语或拼写错误时。我记得我的一位有语言障碍的朋友在编写另一批java时用一个很强的lisp告诉我,当时他正在用python编写一个bash,因为它试图缠绕他亲爱的妻子julia。re.search()
看起来是个不错的选择,谢谢!为测试制作了一个repl,它似乎与我能想到的所有情况都匹配。我想我应该提到。字符串作为re.search()中的第一个参数传递
是正则表达式,因此某些字符必须用\.转义。例如,+
需要用\+
转义。我确实遇到了这个问题,并且能够用重新转义(“c+”)进行纠正
适用于未来可能会出现多次重复错误的读者。感谢您的帮助,Robert,通过这个答案,我们能够很好地实现此实现。