我有一个文件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 开头,后跟零个或多个字符”。
这里有什么问题吗?谢谢。
最佳答案
*
表示零个或多个符号,因此当您将其放在 X 之后时,您的意思是该行以零个或多次出现的 X 开头,这对于所有行都是如此。
关于python - ^ 在 python 中不表示行的开头,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53790247/