python - Python 正则表达式匹配第一个和最后一个字符
问题描述
注意事项:避免在这里阅读我的字符串,我会将有趣的部分加粗,我知道这是一团糟。
我正在尝试在
"jashdgfkldsuvha sjdgjhayaluiegfasdgfguiasdgo"
它以字符“a”开头并以字符“l”结尾(即小写L)。具体来说,我想要一个非贪婪的搜索。
如果我跑
re.findall("(a.*?l)", "jashdgfkldsuvha sjdgjhayaluiegfasdgfguiasdgo")
它返回:
['ashdgfkl', 'a sjdgjhayal']
但请注意,在字符串中,我们按顺序排列了字母“al”:
"jashdgfkldsuvha sjdgjhay al uiegfasdgfguiasdgo"
我不是正则表达式的专家,所以我认为也许,即使 * 应该允许匹配零个字符,这里的零匹配也不起作用。所以让我们在这个“al”之间添加一些字符来得到
"jashdgfkldsuvha sjdgjhay ajkdl uiegfasdgfguiasdgo"
但它仍然只返回
['ashdgfkl', 'a sjdgjhayajkdl']
这里发生了什么?为什么正则表达式对这个特定的“a”和“l”有仇杀?
解决方案
推荐阅读
- r - R bslib 更改导航栏颜色引导版本 5
- javascript - 使用参数访问网站时出现404错误(vuejs)
- javascript - JS - 正则表达式适用于 regex101 但不适用于我的节点脚本
- dnssec - 如何启用 SSHFP?
- apache-kafka - Confluent Operator 添加额外的连接器
- javascript - 为什么 array.map 嵌套在 array.forEach 中(在这种情况下)比其他方式快得多?
- c++ - LLVM | 插入带有 uintptr_t 参数的钩子函数
- python - Python3 argp 对于从终端传递并在配置中传递的字符串的不同行为
- java - 允许保留阻止以解除对一种以上代理类型的阻止
- python - 在处理上述异常的过程中,发生了另一个异常错误发生