我正在尝试在文本文件中找到以“ - ”结尾的行。我使用了以下表达式但没有工作。我不熟悉正则表达式。有人能帮我吗?谢谢!
if re.match(r'[.*+]+\-+[\r\n]', lines[i]):
return i
答案 0 :(得分:5)
re.match
从字符串的开头找到匹配项时,它才会匹配该字符串。如果您确实想使用re.match
,可以使用以下正则表达式
if re.match(r'.*-$', lines[i].rstrip("\n")):
return i
但是你根本不需要正则表达式,你可以做这样的事情
for i, line in enumerate(lines):
if line.rstrip("\n")[-1] == "-":
return i
答案 1 :(得分:2)
这看起来似乎不是一个你需要正则表达式的任务,但下面的表达式会做到这一点。
.*-$
.*
会将所有字符“零或多次”与$
匹配,并指定-
必须紧跟字符串的结尾。
修改强>
如果您设置标记以设置^
和$
以匹配换行符,则会执行此操作。我不建议明确匹配换行符(在您的情况下为'\ r \ n'),因为这些取决于您的环境。
默认情况下,.*
与新线不匹配。
答案 2 :(得分:0)
我认为re.search应该更简单
if re.search(r'-$', lines[i]):
return i