我有一个文件starts_X
如下:
X-hello
X-hello I am j
nX-h
X-
X-hi
我尝试提取以X开头的行。所以我跑了
import re
fhandle=open("starts_X")
for line in fhandle:
if re.search("^X.*",line):
print(line.rstrip())
得到
X-hello
X-hello I am j
X-
X-hi
但是,当我在没有.
的情况下运行它时:
import re
fhandle=open("starts_X")
for line in fhandle:
if re.search("^X*",line):
print(line.rstrip())
它返回
X-hello
X-hello I am j
nX-h
X-
X-hi
我了解到.
与任何字符都匹配。我以为"^X.*"
的意思是“以X开头,后跟一个或多个字符”,而“ ^ X *”的意思是“以X开头,后跟零个或多个字符”。
怎么了谢谢。
答案 0 :(得分:2)
*
表示符号的零个或多个,因此当您将其放在X后面时,表示该行以零个或多个出现的X开头,这对所有行都是正确的。