python-3.x - re.MULTILINE 标志干扰了行尾 $ 运算符
问题描述
抱歉,如果这是一个重复/基本问题,我找不到任何类似的问题。
我有以下多行字符串
my_txt = """
foo.exe\n
bar.exec\n
abab.exe\n
"""
(换行符实际上并没有写在我的代码中,为了清楚起见,我把它们放在那里)。我想匹配每个以 .exe 结尾的文件(不是 .exec)。我的正则表达式最初是:
my_reg = re.compile(".+[.](?=exe$)")
my_matches = my_reg.finditer(my_txt)
我希望它首先找到每个字符,然后返回直到找到.
,然后检查字符exe
和换行符是否跟随。仅找到一个匹配项,即:
abab.exe
. 我试着弄乱了一点,并改变了第一行:
my_reg = re.compile(".+[.](?=exe$)",flags=re.MULTILINE)
. 这次成功运行,返回
foo.
abab.
我认为 re.MULTILINE 不应该干扰 $ 运算符,或者我对 $ 运算符/滥用某些东西是错误的?提前致谢!
解决方案
推荐阅读
- javascript - clearInterval 不清除函数内部的 setInterval
- javascript - 如何使用 javascript 将商品添加到购物车?
- c# - Microsoft 通用主机应用运行时配置:我真的需要在我的代码库中喷洒“IOptions<>”吗?
- node.js - 如何docker化复合节点js项目
- r - 有谁知道如何让我的代码运行得更快?
- git - 通过 SSH 连接 github 返回权限被拒绝错误
- ios - 在 UserDefaults 的数组中更改字典中的值
- ibm-cloud - 如何更新 ibmcloud 中包含多个操作的包?
- google-apps-script - 如何使用 Apps 脚本在 BigQuery 中运行查询并将结果保存在表中?
- php - 尝试在 laravel 中的表或其关系中搜索