^不表示python中的行首

时间:2018-12-15 06:49:24

标签: python

我有一个文件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开头,后跟零个或多个字符”。 怎么了谢谢。

1 个答案:

答案 0 :(得分:2)

*表示符号的零个或多个,因此当您将其放在X后面时,表示该行以零个或多个出现的X开头,这对所有行都是正确的。