python - 常用表达
问题描述
嗨,有谁知道为什么这段代码返回“否”而另一个返回“是”?
import re
b="@gmail.com"
x=re.findall(r"\Bgmail",b)
if x:
print("Yes")
else:
print("No") # <<<
import re
b="agmail.com"
x=re.findall(r"\Bgmail",b)
if x:
print("Yes") # <<<
else:
print("No")
解决方案
作为\b
字边界,\B
是相反的
您的正则表达式"\Bgmail"
要求:
gmail
单词- 前面没有单词边界
@gmail.com ^^ 这两个字符之间有一个单词边界,所以正则表达式不匹配 agmail.com ^^ 这两个字符之间没有单词边界,所以正则表达式匹配
Regex Demo
Word boundaries doc
推荐阅读
- java - java.lang.String 类型的值 Connected 无法转换为 JSONObject 错误
- c# - 递归地在对象中进行 C# 通用搜索
- bash - docker 无效参考的 Bash 文件 $PWD
- db2 - 在 db2 中,为什么 python 脚本总是返回“无”,当我们分配“0”时,从 ibm_db.callproc 调用过程 SP_MEM_DAILY_TMS
- android - 在 Android 上创建后更改小部件设置
- macos - Mac Visual Studio 是否有环境变量配置文件?
- javascript - 带有 javascript 的 madlibs 生成器网页
- ruby - 嵌套字典导航
- karate - 带有空手道测试的 Flaky SocketTimeoutExceptions
- python - 添加新的 Jupyter 环境会因 ft2font 导入错误而破坏 Matplotlib