re.MULTILINE 标志干扰行尾 $ 运算符
re.MULTILINE flag is interfering with the end of line $ operator
抱歉,如果这是一个 duplicate/basic 问题,我找不到任何类似的问题。
我有以下多行字符串
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 不应该干扰 $ 运算符,或者我对 $ operator/misusing 的理解有误吗?
提前致谢!
抱歉,如果这是一个 duplicate/basic 问题,我找不到任何类似的问题。
我有以下多行字符串
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 不应该干扰 $ 运算符,或者我对 $ operator/misusing 的理解有误吗? 提前致谢!