Very Very New to Python... 我的想法是先 with open 打开文件,然后读每行的内容,并用正则表达式筛选特定的内容。
但查了很多代码好像都没能做成
import re
import os
import sys
stringToMatch = '[^/]*\.js'
matchedLine = ''
with open('access_log.txt') as f:
for line in f:
if stringToMatch in line:
print line
上面是其中一个。。 运行后完全没有输出[一脸懵]
1
imn1 2020-08-26 14:35:55 +08:00
stringToMatch = r'[^/]+\.js'
... if re.search(stringToMatch, line): ... |
2
jeblur OP @imn1 太感谢了!可以输出 line 了,还想问下如果要匹配特定的值,比如代码中的*.js 文件,要换掉 search 这个方法吗。关于这个正则表达式我能理解的是匹配到第一个 /开始然后以.js 结尾,最后我需要加$结束吗。
抱歉问了这么多问题:> |
3
imn1 2020-08-26 15:43:57 +08:00
你理解错了
这个正则是 一个或多个不是“/”的字符后面紧接.js ,在一行里面的任意位置,没有方括号的^才是行首 如果你确定匹配结尾是.js 才用$,如果在行中间就不需要( line 最后应该是个换行符,不过你可以测试一下能否匹配) re 里面有很多匹配的方法,只是这个 search 用于“是否匹配”比较简单,根据需要你可以用其他的 你需要学习正则,以及 re 的方法 |