我希望您协助编写python代码来读取文本文件。根据模式搜索文本,并将匹配的文本打印到另一个文本文件。
=示例文件内容= 1111 /应用程序/ abc.jsf111。 asdvvas /小程序。这个文本是/apple.jsf,它有苹果。此外,此文本可能有/app.jsf
== Pattern ==
/app*.jsf
==匹配==
/app/abc.jsf
/apple.jsf
/app.jsf
这是我的代码:
import re
source = open("test.txt", "r")
dest = open("op.txt", "w")
pattern = re.compile('/app*jsf')
for line in source.readlines():
matches = pattern.findall(line)
for word in matches:
dest.write(line+"\n")
dest.close()
我的输出文件(op.txt)为空白。
答案 0 :(得分:0)
pattern = re.compile('/app[^\.]*jsf')
#or maybe just
pattern = re.compile('/app.*jsf') #if your filename can have multiple periods in it eg app.app.app.jsf
应该有用......
regex("app*")# will match ap, app, appppp, appppppppppp
然而,在初始ap之后它不会与p以外的任何东西匹配,因为在正则表达式中,星号(*
)表示 0或更多,它与通配符不同操作系统目录搜索
答案 1 :(得分:0)
替换:
pattern = re.compile('/app*jsf')
使用:
pattern = re.compile('/app.*jsf') # .* means any character any number of times
re.compile('/app*jsf')
仅匹配 / apjsf , / appjsf , / apppjsf , / appppjsf 和所以这是不希望的,可能不会出现在您的文本文件中。这就是空文件的原因。